test : fixed failing unit tests
This commit is contained in:
parent
6f42dd556d
commit
726b350689
@ -168,32 +168,33 @@ def create(path, specs, **kwargs):
|
||||
pkg = spec.package
|
||||
tty.msg("Adding package {pkg} to mirror".format(pkg=spec.format("$_$@")))
|
||||
try:
|
||||
for ii, stage in enumerate(pkg.stage):
|
||||
fetcher = stage.fetcher
|
||||
if ii == 0:
|
||||
# create a subdirectory for the current package@version
|
||||
archive_path = os.path.abspath(join_path(mirror_root, mirror_archive_path(spec, fetcher)))
|
||||
name = spec.format("$_$@")
|
||||
else:
|
||||
resource = stage.resource
|
||||
archive_path = join_path(subdir, suggest_archive_basename(resource))
|
||||
name = "{resource} ({pkg}).".format(resource=resource.name, pkg=spec.format("$_$@"))
|
||||
subdir = os.path.dirname(archive_path)
|
||||
mkdirp(subdir)
|
||||
with pkg.stage:
|
||||
for ii, stage in enumerate(pkg.stage):
|
||||
fetcher = stage.fetcher
|
||||
if ii == 0:
|
||||
# create a subdirectory for the current package@version
|
||||
archive_path = os.path.abspath(join_path(mirror_root, mirror_archive_path(spec, fetcher)))
|
||||
name = spec.format("$_$@")
|
||||
else:
|
||||
resource = stage.resource
|
||||
archive_path = join_path(subdir, suggest_archive_basename(resource))
|
||||
name = "{resource} ({pkg}).".format(resource=resource.name, pkg=spec.format("$_$@"))
|
||||
subdir = os.path.dirname(archive_path)
|
||||
mkdirp(subdir)
|
||||
|
||||
if os.path.exists(archive_path):
|
||||
tty.msg("{name} : already added".format(name=name))
|
||||
else:
|
||||
everything_already_exists = False
|
||||
fetcher.fetch()
|
||||
if not kwargs.get('no_checksum', False):
|
||||
fetcher.check()
|
||||
tty.msg("{name} : checksum passed".format(name=name))
|
||||
if os.path.exists(archive_path):
|
||||
tty.msg("{name} : already added".format(name=name))
|
||||
else:
|
||||
everything_already_exists = False
|
||||
fetcher.fetch()
|
||||
if not kwargs.get('no_checksum', False):
|
||||
fetcher.check()
|
||||
tty.msg("{name} : checksum passed".format(name=name))
|
||||
|
||||
# Fetchers have to know how to archive their files. Use
|
||||
# that to move/copy/create an archive in the mirror.
|
||||
fetcher.archive(archive_path)
|
||||
tty.msg("{name} : added".format(name=name))
|
||||
# Fetchers have to know how to archive their files. Use
|
||||
# that to move/copy/create an archive in the mirror.
|
||||
fetcher.archive(archive_path)
|
||||
tty.msg("{name} : added".format(name=name))
|
||||
|
||||
if everything_already_exists:
|
||||
present.append(spec)
|
||||
|
@ -404,10 +404,13 @@ def path(self):
|
||||
return self[0].path
|
||||
|
||||
def __enter__(self):
|
||||
return self[0].__enter__()
|
||||
for item in self:
|
||||
item.__enter__()
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||
return self[0].__exit__(exc_type, exc_val, exc_tb)
|
||||
for item in reversed(self):
|
||||
item.__exit__(exc_type, exc_val, exc_tb)
|
||||
|
||||
def chdir_to_source(self):
|
||||
return self[0].chdir_to_source()
|
||||
|
@ -52,8 +52,6 @@ def setUp(self):
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.tmpdir, ignore_errors=True)
|
||||
if self.stage:
|
||||
self.stage.destroy()
|
||||
os.chdir(self.orig_dir)
|
||||
|
||||
|
||||
@ -64,12 +62,12 @@ def check_archive(self, filename, system):
|
||||
|
||||
url = 'file://' + join_path(os.getcwd(), 'archive.tar.gz')
|
||||
print url
|
||||
self.stage = Stage(url)
|
||||
self.stage.fetch()
|
||||
with Stage(url) as stage:
|
||||
stage.fetch()
|
||||
|
||||
guesser = ConfigureGuesser()
|
||||
guesser(self.stage)
|
||||
self.assertEqual(system, guesser.build_system)
|
||||
guesser = ConfigureGuesser()
|
||||
guesser(stage)
|
||||
self.assertEqual(system, guesser.build_system)
|
||||
|
||||
|
||||
def test_python(self):
|
||||
|
@ -76,26 +76,27 @@ def try_fetch(self, rev, test_file, args):
|
||||
"""
|
||||
self.pkg.versions[ver('git')] = args
|
||||
|
||||
self.pkg.do_stage()
|
||||
self.assert_rev(rev)
|
||||
with self.pkg.stage:
|
||||
self.pkg.do_stage()
|
||||
self.assert_rev(rev)
|
||||
|
||||
file_path = join_path(self.pkg.stage.source_path, test_file)
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
file_path = join_path(self.pkg.stage.source_path, test_file)
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
|
||||
os.unlink(file_path)
|
||||
self.assertFalse(os.path.isfile(file_path))
|
||||
os.unlink(file_path)
|
||||
self.assertFalse(os.path.isfile(file_path))
|
||||
|
||||
untracked_file = 'foobarbaz'
|
||||
touch(untracked_file)
|
||||
self.assertTrue(os.path.isfile(untracked_file))
|
||||
self.pkg.do_restage()
|
||||
self.assertFalse(os.path.isfile(untracked_file))
|
||||
untracked_file = 'foobarbaz'
|
||||
touch(untracked_file)
|
||||
self.assertTrue(os.path.isfile(untracked_file))
|
||||
self.pkg.do_restage()
|
||||
self.assertFalse(os.path.isfile(untracked_file))
|
||||
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
|
||||
self.assert_rev(rev)
|
||||
self.assert_rev(rev)
|
||||
|
||||
|
||||
def test_fetch_master(self):
|
||||
|
@ -68,26 +68,27 @@ def try_fetch(self, rev, test_file, args):
|
||||
"""
|
||||
self.pkg.versions[ver('hg')] = args
|
||||
|
||||
self.pkg.do_stage()
|
||||
self.assertEqual(self.repo.get_rev(), rev)
|
||||
with self.pkg.stage:
|
||||
self.pkg.do_stage()
|
||||
self.assertEqual(self.repo.get_rev(), rev)
|
||||
|
||||
file_path = join_path(self.pkg.stage.source_path, test_file)
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
file_path = join_path(self.pkg.stage.source_path, test_file)
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
|
||||
os.unlink(file_path)
|
||||
self.assertFalse(os.path.isfile(file_path))
|
||||
os.unlink(file_path)
|
||||
self.assertFalse(os.path.isfile(file_path))
|
||||
|
||||
untracked = 'foobarbaz'
|
||||
touch(untracked)
|
||||
self.assertTrue(os.path.isfile(untracked))
|
||||
self.pkg.do_restage()
|
||||
self.assertFalse(os.path.isfile(untracked))
|
||||
untracked = 'foobarbaz'
|
||||
touch(untracked)
|
||||
self.assertTrue(os.path.isfile(untracked))
|
||||
self.pkg.do_restage()
|
||||
self.assertFalse(os.path.isfile(untracked))
|
||||
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
|
||||
self.assertEqual(self.repo.get_rev(), rev)
|
||||
self.assertEqual(self.repo.get_rev(), rev)
|
||||
|
||||
|
||||
def test_fetch_default(self):
|
||||
|
@ -38,6 +38,8 @@ class LinkTreeTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.stage = Stage('link-tree-test')
|
||||
# FIXME : possibly this test needs to be refactored to avoid the explicit call to __enter__ and __exit__
|
||||
self.stage.__enter__()
|
||||
|
||||
with working_dir(self.stage.path):
|
||||
touchp('source/1')
|
||||
@ -51,10 +53,8 @@ def setUp(self):
|
||||
source_path = os.path.join(self.stage.path, 'source')
|
||||
self.link_tree = LinkTree(source_path)
|
||||
|
||||
|
||||
def tearDown(self):
|
||||
if self.stage:
|
||||
self.stage.destroy()
|
||||
self.stage.__exit__(None, None, None)
|
||||
|
||||
|
||||
def check_file_link(self, filename):
|
||||
|
@ -74,14 +74,14 @@ def set_up_package(self, name, MockRepoClass, url_attr):
|
||||
|
||||
|
||||
def check_mirror(self):
|
||||
stage = Stage('spack-mirror-test')
|
||||
mirror_root = join_path(stage.path, 'test-mirror')
|
||||
with Stage('spack-mirror-test') as stage:
|
||||
mirror_root = join_path(stage.path, 'test-mirror')
|
||||
|
||||
# register mirror with spack config
|
||||
mirrors = { 'spack-mirror-test' : 'file://' + mirror_root }
|
||||
spack.config.update_config('mirrors', mirrors)
|
||||
|
||||
# register mirror with spack config
|
||||
mirrors = { 'spack-mirror-test' : 'file://' + mirror_root }
|
||||
spack.config.update_config('mirrors', mirrors)
|
||||
|
||||
try:
|
||||
os.chdir(stage.path)
|
||||
spack.mirror.create(
|
||||
mirror_root, self.repos, no_checksum=True)
|
||||
@ -97,38 +97,36 @@ def check_mirror(self):
|
||||
files = os.listdir(subdir)
|
||||
self.assertEqual(len(files), 1)
|
||||
|
||||
# Now try to fetch each package.
|
||||
for name, mock_repo in self.repos.items():
|
||||
spec = Spec(name).concretized()
|
||||
pkg = spec.package
|
||||
# Now try to fetch each package.
|
||||
for name, mock_repo in self.repos.items():
|
||||
spec = Spec(name).concretized()
|
||||
pkg = spec.package
|
||||
|
||||
pkg._stage = None
|
||||
saved_checksum_setting = spack.do_checksum
|
||||
try:
|
||||
# Stage the archive from the mirror and cd to it.
|
||||
spack.do_checksum = False
|
||||
pkg.do_stage(mirror_only=True)
|
||||
saved_checksum_setting = spack.do_checksum
|
||||
with pkg.stage:
|
||||
try:
|
||||
# Stage the archive from the mirror and cd to it.
|
||||
spack.do_checksum = False
|
||||
pkg.do_stage(mirror_only=True)
|
||||
|
||||
# Compare the original repo with the expanded archive
|
||||
original_path = mock_repo.path
|
||||
if 'svn' in name:
|
||||
# have to check out the svn repo to compare.
|
||||
original_path = join_path(mock_repo.path, 'checked_out')
|
||||
svn('checkout', mock_repo.url, original_path)
|
||||
# Compare the original repo with the expanded archive
|
||||
original_path = mock_repo.path
|
||||
if 'svn' in name:
|
||||
# have to check out the svn repo to compare.
|
||||
original_path = join_path(mock_repo.path, 'checked_out')
|
||||
svn('checkout', mock_repo.url, original_path)
|
||||
|
||||
dcmp = dircmp(original_path, pkg.stage.source_path)
|
||||
dcmp = dircmp(original_path, pkg.stage.source_path)
|
||||
|
||||
# make sure there are no new files in the expanded tarball
|
||||
self.assertFalse(dcmp.right_only)
|
||||
# make sure there are no new files in the expanded tarball
|
||||
self.assertFalse(dcmp.right_only)
|
||||
|
||||
# and that all original files are present.
|
||||
self.assertTrue(all(l in exclude for l in dcmp.left_only))
|
||||
# and that all original files are present.
|
||||
self.assertTrue(all(l in exclude for l in dcmp.left_only))
|
||||
|
||||
finally:
|
||||
spack.do_checksum = saved_checksum_setting
|
||||
pkg.do_clean()
|
||||
finally:
|
||||
stage.destroy()
|
||||
finally:
|
||||
spack.do_checksum = saved_checksum_setting
|
||||
pkg.do_clean()
|
||||
|
||||
|
||||
def test_git_mirror(self):
|
||||
|
@ -82,26 +82,27 @@ def try_fetch(self, rev, test_file, args):
|
||||
"""
|
||||
self.pkg.versions[ver('svn')] = args
|
||||
|
||||
self.pkg.do_stage()
|
||||
self.assert_rev(rev)
|
||||
with self.pkg.stage:
|
||||
self.pkg.do_stage()
|
||||
self.assert_rev(rev)
|
||||
|
||||
file_path = join_path(self.pkg.stage.source_path, test_file)
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
file_path = join_path(self.pkg.stage.source_path, test_file)
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
|
||||
os.unlink(file_path)
|
||||
self.assertFalse(os.path.isfile(file_path))
|
||||
os.unlink(file_path)
|
||||
self.assertFalse(os.path.isfile(file_path))
|
||||
|
||||
untracked = 'foobarbaz'
|
||||
touch(untracked)
|
||||
self.assertTrue(os.path.isfile(untracked))
|
||||
self.pkg.do_restage()
|
||||
self.assertFalse(os.path.isfile(untracked))
|
||||
untracked = 'foobarbaz'
|
||||
touch(untracked)
|
||||
self.assertTrue(os.path.isfile(untracked))
|
||||
self.pkg.do_restage()
|
||||
self.assertFalse(os.path.isfile(untracked))
|
||||
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
self.assertTrue(os.path.isdir(self.pkg.stage.source_path))
|
||||
self.assertTrue(os.path.isfile(file_path))
|
||||
|
||||
self.assert_rev(rev)
|
||||
self.assert_rev(rev)
|
||||
|
||||
|
||||
def test_fetch_default(self):
|
||||
|
Loading…
Reference in New Issue
Block a user