summaryrefslogtreecommitdiff
path: root/tests/test_recursiveloader.py
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-10-24 22:03:41 +0200
committerMichał Górny <mgorny@gentoo.org>2017-10-24 22:10:20 +0200
commit1336959230029c42c9550ac6c39fa4d3ab62b0aa (patch)
tree802a0421653a85720276df4ed06be5e50ab13952 /tests/test_recursiveloader.py
parent2c462cdb9bfa173900953d7b788d7ac1bbdcbfe7 (diff)
downloadgemato-1336959230029c42c9550ac6c39fa4d3ab62b0aa.tar.gz
recursiveloader: Support verifying a whole directory
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r--tests/test_recursiveloader.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py
index 8aa924f..2483030 100644
--- a/tests/test_recursiveloader.py
+++ b/tests/test_recursiveloader.py
@@ -219,6 +219,17 @@ DATA test 0 MD5 d41d8cd98f00b204e9800998ecf8427e
os.path.join(self.dir, 'Manifest'))
self.assertDictEqual(m.get_file_entry_dict('nonexist'), {})
+ def test_assert_directory_verifies(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ m.assert_directory_verifies('other')
+
+ def test_assert_directory_verifies_stray_file(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ self.assertRaises(gemato.verify.ManifestMismatch,
+ m.assert_directory_verifies, 'sub')
+
class MultipleManifestTest(TempDirTestCase):
DIRS = ['sub']
@@ -295,6 +306,7 @@ class DuplicateFileEntryTest(TempDirTestCase):
DATA test 0 MD5 d41d8cd98f00b204e9800998ecf8427e
DATA test 0 MD5 d41d8cd98f00b204e9800998ecf8427e
''',
+ 'test': u'',
}
def test_find_path_entry(self):
@@ -309,6 +321,11 @@ DATA test 0 MD5 d41d8cd98f00b204e9800998ecf8427e
self.assertSetEqual(frozenset(entries), frozenset(('test',)))
self.assertEqual(entries['test'].path, 'test')
+ def test_assert_directory_verifies(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ m.assert_directory_verifies('')
+
class DuplicateManifestFileEntryTest(TempDirTestCase):
"""
@@ -397,6 +414,7 @@ class DuplicateCompatibleTypeFileEntryTest(TempDirTestCase):
DATA test.ebuild 0 MD5 d41d8cd98f00b204e9800998ecf8427e
EBUILD test.ebuild 0 MD5 d41d8cd98f00b204e9800998ecf8427e
''',
+ 'test.ebuild': u'',
}
def test_find_path_entry(self):
@@ -411,6 +429,11 @@ EBUILD test.ebuild 0 MD5 d41d8cd98f00b204e9800998ecf8427e
self.assertSetEqual(frozenset(entries), frozenset(('test.ebuild',)))
self.assertEqual(entries['test.ebuild'].path, 'test.ebuild')
+ def test_assert_directory_verifies(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ m.assert_directory_verifies('')
+
class DuplicateAUXTypeFileEntryTest(TempDirTestCase):
"""
@@ -418,11 +441,13 @@ class DuplicateAUXTypeFileEntryTest(TempDirTestCase):
type (because of path weirdness).
"""
+ DIRS = ['files']
FILES = {
'Manifest': u'''
DATA files/test.patch 0 MD5 d41d8cd98f00b204e9800998ecf8427e
AUX test.patch 0 MD5 d41d8cd98f00b204e9800998ecf8427e
''',
+ 'files/test.patch': u'',
}
def test_find_path_entry(self):
@@ -437,6 +462,11 @@ AUX test.patch 0 MD5 d41d8cd98f00b204e9800998ecf8427e
self.assertSetEqual(frozenset(entries), frozenset(('files/test.patch',)))
self.assertEqual(entries['files/test.patch'].path, 'files/test.patch')
+ def test_assert_directory_verifies(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ m.assert_directory_verifies('')
+
class DuplicateDifferentHashSetFileEntryTest(TempDirTestCase):
"""
@@ -449,6 +479,7 @@ class DuplicateDifferentHashSetFileEntryTest(TempDirTestCase):
DATA test 0 MD5 9e107d9d372bb6826bd81d3542a419d6
DATA test 0 SHA1 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
''',
+ 'test': u'',
}
def test_find_path_entry(self):
@@ -465,6 +496,17 @@ DATA test 0 SHA1 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
self.assertSetEqual(frozenset(entries['test'].checksums),
frozenset(('MD5', 'SHA1')))
+ def test_assert_directory_verifies(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ with self.assertRaises(gemato.verify.ManifestMismatch) as cm:
+ m.assert_directory_verifies('')
+ self.assertListEqual(cm.exception.diff,
+ [
+ ('MD5', '9e107d9d372bb6826bd81d3542a419d6', 'd41d8cd98f00b204e9800998ecf8427e'),
+ ('SHA1', '2fd4e1c67a2d28fced849ee1bb76e7391b93eb12', 'da39a3ee5e6b4b0d3255bfef95601890afd80709'),
+ ])
+
class DuplicateIncompatibleDataMiscTypeFileEntryTest(TempDirTestCase):
"""
@@ -589,3 +631,30 @@ DATA test.ebuild 0 MD5 9e107d9d372bb6826bd81d3542a419d6
os.path.join(self.dir, 'Manifest'))
self.assertRaises(gemato.recursiveloader.ManifestIncompatibleEntry,
m.get_file_entry_dict, '')
+
+ def test_assert_directory_verifies(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ self.assertRaises(gemato.recursiveloader.ManifestIncompatibleEntry,
+ m.assert_directory_verifies, '')
+
+
+class ManifestIgnoreEntryTest(TempDirTestCase):
+ """
+ Test for a Manifest file with IGNOREs.
+ """
+
+ DIRS = ['bar']
+ FILES = {
+ 'Manifest': u'''
+IGNORE foo
+IGNORE bar
+''',
+ 'foo': u'test',
+ 'bar/baz': u'test',
+ }
+
+ def test_assert_directory_verifies(self):
+ m = gemato.recursiveloader.ManifestRecursiveLoader(
+ os.path.join(self.dir, 'Manifest'))
+ m.assert_directory_verifies('')