summaryrefslogtreecommitdiff
path: root/morphlib/stagingarea_tests.py
diff options
context:
space:
mode:
authorTiago Gomes <tiago.gomes@codethink.co.uk>2015-09-01 10:15:36 +0000
committerBaserock Gerrit <gerrit@baserock.org>2015-09-22 16:53:46 +0000
commit50247e57320de74e88049101e1ad47fb8e78b5a3 (patch)
treeec3f0fcedf9b9ef2a7ed1c49ed96d9bf994279a0 /morphlib/stagingarea_tests.py
parent81ebe71089d802061c2c3cb03bfd548388d04cb8 (diff)
downloadmorph-50247e57320de74e88049101e1ad47fb8e78b5a3.tar.gz
Simplify StagingArea class
Pass the Source to the staging area constructor so that we don't need to pass it as a parameter when we call some StagingArea methods. Also move the creation of the build and destdir directories to the constructor so that we can get rid of the chroot_open() and chroot_close() methods. Also, provide API to retrieve the relative locations for buildir and destdir. Change-Id: I6e8085392e19ff3d8df807f260acf90eec9e0901
Diffstat (limited to 'morphlib/stagingarea_tests.py')
-rw-r--r--morphlib/stagingarea_tests.py33
1 files changed, 11 insertions, 22 deletions
diff --git a/morphlib/stagingarea_tests.py b/morphlib/stagingarea_tests.py
index f08a3989..2d7a7e33 100644
--- a/morphlib/stagingarea_tests.py
+++ b/morphlib/stagingarea_tests.py
@@ -64,6 +64,7 @@ class FakeApplication(object):
class StagingAreaTests(unittest.TestCase):
def setUp(self):
+ self.source = FakeSource()
self.tempdir = tempfile.mkdtemp()
self.cachedir = os.path.join(self.tempdir, 'cachedir')
os.mkdir(self.cachedir)
@@ -72,8 +73,8 @@ class StagingAreaTests(unittest.TestCase):
self.created_dirs = []
self.build_env = FakeBuildEnvironment()
self.sa = morphlib.stagingarea.StagingArea(
- FakeApplication(self.cachedir, self.tempdir), self.staging,
- self.build_env)
+ FakeApplication(self.cachedir, self.tempdir), self.source,
+ self.staging, self.build_env)
def tearDown(self):
shutil.rmtree(self.tempdir)
@@ -98,35 +99,21 @@ class StagingAreaTests(unittest.TestCase):
files.append(x[len(root):] or '/')
return files
- def fake_mkdir(self, dirname):
- self.created_dirs.append(dirname)
-
def test_remembers_specified_directory(self):
self.assertEqual(self.sa.dirname, self.staging)
- def test_creates_build_directory(self):
- source = FakeSource()
- self.sa._mkdir = self.fake_mkdir
- dirname = self.sa.builddir(source)
- self.assertEqual(self.created_dirs, [dirname])
- self.assertTrue(dirname.startswith(self.staging))
-
- def test_creates_install_directory(self):
- source = FakeSource()
- self.sa._mkdir = self.fake_mkdir
- dirname = self.sa.destdir(source)
- self.assertEqual(self.created_dirs, [dirname])
- self.assertTrue(dirname.startswith(self.staging))
-
def test_makes_relative_name(self):
- filename = os.path.join(self.staging, 'foobar')
+ filename = 'foobar'
self.assertEqual(self.sa.relative(filename), '/foobar')
def test_installs_artifact(self):
chunk_tar = self.create_chunk()
with open(chunk_tar, 'rb') as f:
self.sa.install_artifact(f)
- self.assertEqual(self.list_tree(self.staging), ['/', '/file.txt'])
+ self.assertEqual(self.list_tree(self.staging),
+ ['/', '/file.txt',
+ self.sa.relative_destdir(),
+ self.sa.relative_builddir()])
def test_removes_everything(self):
chunk_tar = self.create_chunk()
@@ -139,11 +126,13 @@ class StagingAreaTests(unittest.TestCase):
class StagingAreaNonIsolatedTests(unittest.TestCase):
def setUp(self):
+ self.source = FakeSource()
self.tempdir = tempfile.mkdtemp()
self.staging = os.path.join(self.tempdir, 'staging')
self.build_env = FakeBuildEnvironment()
self.sa = morphlib.stagingarea.StagingArea(
- object(), self.staging, self.build_env, use_chroot=False)
+ object(), self.source, self.staging, self.build_env,
+ use_chroot=False)
def tearDown(self):
shutil.rmtree(self.tempdir)