diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-10-29 13:48:37 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-10-29 13:48:37 +0100 |
commit | 566eff1c70f54d5020d860ff449edc605aa828e3 (patch) | |
tree | b803e5bf10e0cf967c069d3ec4a8266e3772845d /tests/test_recursiveloader.py | |
parent | 919b29928428c5a1f473d78e02e6d8fdcd2acead (diff) | |
download | gemato-566eff1c70f54d5020d860ff449edc605aa828e3.tar.gz |
recursiveloader: Support creating new Manifests
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r-- | tests/test_recursiveloader.py | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py index 50e2f16..fb4b67d 100644 --- a/tests/test_recursiveloader.py +++ b/tests/test_recursiveloader.py @@ -2129,3 +2129,102 @@ INVALID STUFF IN HERE gemato.cli.main(['gemato', 'verify', self.dir]), 0) + + +class CreateNewManifestTest(TempDirTestCase): + DIRS = ['sub'] + FILES = { + 'test': u'', + 'sub/test': u'', + } + + def setUp(self): + super(CreateNewManifestTest, self).setUp() + self.path = os.path.join(self.dir, 'Manifest') + + def tearDown(self): + try: + os.unlink(self.path) + except OSError: + pass + super(CreateNewManifestTest, self).tearDown() + + def test_load_without_create(self): + self.assertRaises(IOError, + gemato.recursiveloader.ManifestRecursiveLoader, + self.path) + + def test_create_without_save(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + self.path, allow_create=True) + del m + self.assertFalse(os.path.exists(self.path)) + + def test_create_empty(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + self.path, allow_create=True) + m.save_manifests() + self.assertTrue(os.path.exists(self.path)) + + def test_update_entries_for_directory(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + self.path, allow_create=True, hashes=['MD5']) + m.update_entries_for_directory('') + m.save_manifests() + m.assert_directory_verifies('') + + m2 = gemato.manifest.ManifestFile() + with io.open(self.path, 'r', encoding='utf8') as f: + m2.load(f) + self.assertEqual(len(m2.entries), 2) + + +class CreateNewCompressedManifestTest(TempDirTestCase): + DIRS = ['sub'] + FILES = { + 'test': u'', + 'sub/test': u'', + } + + def setUp(self): + super(CreateNewCompressedManifestTest, self).setUp() + self.path = os.path.join(self.dir, 'Manifest.gz') + + def tearDown(self): + try: + os.unlink(self.path) + except OSError: + pass + super(CreateNewCompressedManifestTest, self).tearDown() + + def test_load_without_create(self): + self.assertRaises(IOError, + gemato.recursiveloader.ManifestRecursiveLoader, + self.path) + + def test_create_without_save(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + self.path, allow_create=True) + del m + self.assertFalse(os.path.exists(self.path)) + + def test_create_empty(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + self.path, allow_create=True) + m.save_manifests() + with gemato.compression.open_potentially_compressed_path( + self.path, 'rb') as f: + self.assertEqual(f.read(), b'') + + def test_update_entries_for_directory(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + self.path, allow_create=True, hashes=['MD5']) + m.update_entries_for_directory('') + m.save_manifests() + m.assert_directory_verifies('') + + m2 = gemato.manifest.ManifestFile() + with gemato.compression.open_potentially_compressed_path( + self.path, 'r', encoding='utf8') as f: + m2.load(f) + self.assertEqual(len(m2.entries), 2) |