diff options
-rw-r--r-- | gemato/exceptions.py | 40 | ||||
-rw-r--r-- | gemato/hash.py | 10 | ||||
-rw-r--r-- | gemato/manifest.py | 22 | ||||
-rw-r--r-- | gemato/recursiveloader.py | 16 | ||||
-rw-r--r-- | gemato/verify.py | 18 | ||||
-rw-r--r-- | tests/test_hash.py | 43 | ||||
-rw-r--r-- | tests/test_manifest.py | 139 | ||||
-rw-r--r-- | tests/test_recursiveloader.py | 23 | ||||
-rw-r--r-- | tests/test_verify.py | 5 |
9 files changed, 164 insertions, 152 deletions
diff --git a/gemato/exceptions.py b/gemato/exceptions.py new file mode 100644 index 0000000..e580309 --- /dev/null +++ b/gemato/exceptions.py @@ -0,0 +1,40 @@ +# gemato: exceptions +# vim:fileencoding=utf-8 +# (c) 2017 Michał Górny +# Licensed under the terms of 2-clause BSD license + +class UnsupportedHash(Exception): + def __init__(self, hash_name): + super(UnsupportedHash, self).__init__( + 'Unsupported hash name: {}'.format(hash_name)) + + +class ManifestSyntaxError(Exception): + def __init__(self, message): + super(ManifestSyntaxError, self).__init__(message) + + +class ManifestIncompatibleEntry(Exception): + def __init__(self, e1, e2, diff): + msg = "Incompatible Manifest entries for {}".format(e1.path) + for k, d1, d2 in diff: + msg += "\n {}: e1: {}, e2: {}".format(k, e1, e2) + super(ManifestIncompatibleEntry, self).__init__(msg) + self.e1 = e1 + self.e2 = e2 + self.diff = diff + + +class ManifestMismatch(Exception): + """ + An exception raised for verification failure. + """ + + def __init__(self, path, entry, diff): + msg = "Manifest mismatch for {}".format(path) + for k, exp, got in diff: + msg += "\n {}: expected: {}, have: {}".format(k, exp, got) + super(ManifestMismatch, self).__init__(msg) + self.path = path + self.entry = entry + self.diff = diff diff --git a/gemato/hash.py b/gemato/hash.py index 6ad0a27..7ee6c4b 100644 --- a/gemato/hash.py +++ b/gemato/hash.py @@ -11,14 +11,10 @@ except ImportError: import Queue as queue import threading - -HASH_BUFFER_SIZE = 65536 +import gemato.exceptions -class UnsupportedHash(Exception): - def __init__(self, hash_name): - super(UnsupportedHash, self).__init__( - 'Unsupported hash name: {}'.format(hash_name)) +HASH_BUFFER_SIZE = 65536 class SizeHash(object): @@ -71,7 +67,7 @@ def get_hash_by_name(name): except AttributeError: pass - raise UnsupportedHash(name) + raise gemato.exceptions.UnsupportedHash(name) def hash_one(hn, h, q, ret, retlock): diff --git a/gemato/manifest.py b/gemato/manifest.py index c1a605e..78462f4 100644 --- a/gemato/manifest.py +++ b/gemato/manifest.py @@ -6,14 +6,10 @@ import datetime import os.path +import gemato.exceptions import gemato.util -class ManifestSyntaxError(Exception): - def __init__(self, message): - super(ManifestSyntaxError, self).__init__(message) - - class ManifestEntryTIMESTAMP(object): """ ISO-8601 timestamp. @@ -29,12 +25,12 @@ class ManifestEntryTIMESTAMP(object): def from_list(cls, l): assert l[0] == cls.tag if len(l) != 2: - raise ManifestSyntaxError( + raise gemato.exceptions.ManifestSyntaxError( '{} line: expects 1 value, got: {}'.format(l[0], l[1:])) try: ts = datetime.datetime.strptime(l[1], '%Y-%m-%dT%H:%M:%SZ') except ValueError: - raise ManifestSyntaxError( + raise gemato.exceptions.ManifestSyntaxError( '{} line: expected ISO8601 timestamp, got: {}'.format(l[0], l[1:])) return cls(ts) @@ -54,10 +50,10 @@ class ManifestPathEntry(object): @staticmethod def process_path(l): if len(l) != 2: - raise ManifestSyntaxError( + raise gemato.exceptions.ManifestSyntaxError( '{} line: expects 1 value, got: {}'.format(l[0], l[1:])) if not l[1] or l[1][0] == '/': - raise ManifestSyntaxError( + raise gemato.exceptions.ManifestSyntaxError( '{} line: expected relative path, got: {}'.format(l[0], l[1:])) return l[1] @@ -112,7 +108,7 @@ class ManifestFileEntry(ManifestPathEntry): @staticmethod def process_checksums(l): if len(l) < 3: - raise ManifestSyntaxError( + raise gemato.exceptions.ManifestSyntaxError( '{} line: expects at least 2 values, got: {}'.format(l[0], l[1:])) try: @@ -120,7 +116,7 @@ class ManifestFileEntry(ManifestPathEntry): if size < 0: raise ValueError() except ValueError: - raise ManifestSyntaxError( + raise gemato.exceptions.ManifestSyntaxError( '{} line: size must be a non-negative integer, got: {}'.format(l[0], l[2])) checksums = {} @@ -133,7 +129,7 @@ class ManifestFileEntry(ManifestPathEntry): try: ckval = next(it) except StopIteration: - raise ManifestSyntaxError( + raise gemato.exceptions.ManifestSyntaxError( '{} line: checksum {} has no value'.format(l[0], ckname)) checksums[ckname] = ckval @@ -211,7 +207,7 @@ class ManifestEntryDIST(ManifestFileEntry): def from_list(cls, l): path = cls.process_path(l[:2]) if '/' in path: - raise ManifestSyntaxError( + raise gemato.exceptions.ManifestSyntaxError( 'DIST line: file name expected, got directory path: {}'.format(path)) size, checksums = cls.process_checksums(l) return cls(path, size, checksums) diff --git a/gemato/recursiveloader.py b/gemato/recursiveloader.py index 07b0d0e..4519aeb 100644 --- a/gemato/recursiveloader.py +++ b/gemato/recursiveloader.py @@ -6,22 +6,12 @@ import io import os.path +import gemato.exceptions import gemato.manifest import gemato.util import gemato.verify -class ManifestIncompatibleEntry(Exception): - def __init__(self, e1, e2, diff): - msg = "Incompatible Manifest entries for {}".format(e1.path) - for k, d1, d2 in diff: - msg += "\n {}: e1: {}, e2: {}".format(k, e1, e2) - super(ManifestIncompatibleEntry, self).__init__(msg) - self.e1 = e1 - self.e2 = e2 - self.diff = diff - - def throw_exception(e): """ Raise the given exception. Needed for onerror= argument @@ -194,7 +184,7 @@ class ManifestRecursiveLoader(object): ret, diff = gemato.verify.verify_entry_compatibility( out[fullpath], e) if not ret: - raise ManifestIncompatibleEntry(out[fullpath], e, diff) + raise gemato.exceptions.ManifestIncompatibleEntry(out[fullpath], e, diff) # we need to construct a single entry with both checksums if diff: new_checksums = dict(e.checksums) @@ -208,7 +198,7 @@ class ManifestRecursiveLoader(object): def _verify_one_file(self, path, e, strict): try: gemato.verify.assert_path_verifies(path, e) - except gemato.verify.ManifestMismatch: + except gemato.exceptions.ManifestMismatch: if strict: raise # skip MISC/OPTIONAL in non-strict mode diff --git a/gemato/verify.py b/gemato/verify.py index eda13ba..ef8092b 100644 --- a/gemato/verify.py +++ b/gemato/verify.py @@ -8,6 +8,7 @@ import fcntl import os import stat +import gemato.exceptions import gemato.hash import gemato.manifest @@ -168,21 +169,6 @@ def verify_entry_compatibility(e1, e2): return (ret, diff) -class ManifestMismatch(Exception): - """ - An exception raised for verification failure. - """ - - def __init__(self, path, entry, diff): - msg = "Manifest mismatch for {}".format(path) - for k, exp, got in diff: - msg += "\n {}: expected: {}, have: {}".format(k, exp, got) - super(ManifestMismatch, self).__init__(msg) - self.path = path - self.entry = entry - self.diff = diff - - def assert_path_verifies(path, e): """ Verify the path @path against entry @e. Raises an exception if it @@ -191,4 +177,4 @@ def assert_path_verifies(path, e): ret, diff = verify_path(path, e) if not ret: - raise ManifestMismatch(path, e, diff) + raise gemato.exceptions.ManifestMismatch(path, e, diff) diff --git a/tests/test_hash.py b/tests/test_hash.py index d4dc3c1..900ccd7 100644 --- a/tests/test_hash.py +++ b/tests/test_hash.py @@ -7,6 +7,7 @@ import io import tempfile import unittest +import gemato.exceptions import gemato.hash @@ -23,15 +24,15 @@ class HashAPITest(unittest.TestCase): gemato.hash.get_hash_by_name('sha1') def test_get_invalid(self): - self.assertRaises(gemato.hash.UnsupportedHash, + self.assertRaises(gemato.exceptions.UnsupportedHash, gemato.hash.get_hash_by_name, '_invalid_name_') def test_get_invalid_pyblake2(self): - self.assertRaises(gemato.hash.UnsupportedHash, + self.assertRaises(gemato.exceptions.UnsupportedHash, gemato.hash.get_hash_by_name, 'blake2zzz') def test_get_invalid_pysha3(self): - self.assertRaises(gemato.hash.UnsupportedHash, + self.assertRaises(gemato.exceptions.UnsupportedHash, gemato.hash.get_hash_by_name, 'sha3_987') def test_hash_file(self): @@ -142,126 +143,126 @@ class OptionalHashTest(unittest.TestCase): try: self.assertEqual(gemato.hash.hash_bytes(TEST_STRING, 'md4'), '1bee69a46ba811185c194762abaeae90') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_md4_empty(self): try: self.assertEqual(gemato.hash.hash_bytes(b'', 'md4'), '31d6cfe0d16ae931b73c59d7e0c089c0') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_ripemd160(self): try: self.assertEqual(gemato.hash.hash_bytes(TEST_STRING, 'ripemd160'), '37f332f68db77bd9d7edd4969571ad671cf9dd3b') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_ripemd160_empty(self): try: self.assertEqual(gemato.hash.hash_bytes(b'', 'ripemd160'), '9c1185a5c5e9fc54612808977ee8f548b2258d31') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_blake2b(self): try: self.assertEqual(gemato.hash.hash_bytes(TEST_STRING, 'blake2b'), 'a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_blake2b_empty(self): try: self.assertEqual(gemato.hash.hash_bytes(b'', 'blake2b'), '786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_blake2s(self): try: self.assertEqual(gemato.hash.hash_bytes(TEST_STRING, 'blake2s'), '606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_blake2s_empty(self): try: self.assertEqual(gemato.hash.hash_bytes(b'', 'blake2s'), '69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_sha3_224(self): try: self.assertEqual(gemato.hash.hash_bytes(TEST_STRING, 'sha3_224'), 'd15dadceaa4d5d7bb3b48f446421d542e08ad8887305e28d58335795') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_sha3_224_empty(self): try: self.assertEqual(gemato.hash.hash_bytes(b'', 'sha3_224'), '6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_sha3_256(self): try: self.assertEqual(gemato.hash.hash_bytes(TEST_STRING, 'sha3_256'), '69070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_sha3_256_empty(self): try: self.assertEqual(gemato.hash.hash_bytes(b'', 'sha3_256'), 'a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_sha3_384(self): try: self.assertEqual(gemato.hash.hash_bytes(TEST_STRING, 'sha3_384'), '7063465e08a93bce31cd89d2e3ca8f602498696e253592ed26f07bf7e703cf328581e1471a7ba7ab119b1a9ebdf8be41') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_sha3_384_empty(self): try: self.assertEqual(gemato.hash.hash_bytes(b'', 'sha3_384'), '0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_sha3_512(self): try: self.assertEqual(gemato.hash.hash_bytes(TEST_STRING, 'sha3_512'), '01dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_sha3_512_empty(self): try: self.assertEqual(gemato.hash.hash_bytes(b'', 'sha3_512'), 'a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_whirlpool(self): try: self.assertEqual(gemato.hash.hash_bytes(TEST_STRING, 'whirlpool'), 'b97de512e91e3828b40d2b0fdce9ceb3c4a71f9bea8d88e75c4fa854df36725fd2b52eb6544edcacd6f8beddfea403cb55ae31f03ad62a5ef54e42ee82c3fb35') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') def test_whirlpool_empty(self): try: self.assertEqual(gemato.hash.hash_bytes(b'', 'whirlpool'), '19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3') - except gemato.hash.UnsupportedHash: + except gemato.exceptions.UnsupportedHash: raise unittest.SkipTest('hash not supported') diff --git a/tests/test_manifest.py b/tests/test_manifest.py index 8729eb9..fbf74e5 100644 --- a/tests/test_manifest.py +++ b/tests/test_manifest.py @@ -7,6 +7,7 @@ import datetime import io import unittest +import gemato.exceptions import gemato.manifest @@ -189,157 +190,157 @@ class ManifestEntryTest(unittest.TestCase): ['AUX'] + list(self.file_vals)) def test_timestamp_invalid(self): - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryTIMESTAMP.from_list, ('TIMESTAMP',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryTIMESTAMP.from_list, ('TIMESTAMP', '')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryTIMESTAMP.from_list, ('TIMESTAMP', '2017-10-22T18:06:41+02:00')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryTIMESTAMP.from_list, ('TIMESTAMP', '2017-10-22T18:06:41')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryTIMESTAMP.from_list, ('TIMESTAMP', '2017-10-22', '18:06:41Z')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryTIMESTAMP.from_list, ('TIMESTAMP', '20171022T180641Z')) def test_path_invalid(self): - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMANIFEST.from_list, ('MANIFEST', '', '0')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMANIFEST.from_list, ('MANIFEST', '/foo', '0')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryIGNORE.from_list, ('IGNORE', '',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryIGNORE.from_list, ('IGNORE', '/foo',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryOPTIONAL.from_list, ('OPTIONAL', '',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryOPTIONAL.from_list, ('OPTIONAL', '/foo',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDATA.from_list, ('DATA', '',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDATA.from_list, ('DATA', '/foo',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMISC.from_list, ('MISC', '',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMISC.from_list, ('MISC', '/foo',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST', '',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST', '/foo',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST', 'foo/bar.gz',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryEBUILD.from_list, ('EBUILD', '',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryEBUILD.from_list, ('EBUILD', '/foo',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryAUX.from_list, ('AUX', '',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryAUX.from_list, ('AUX', '/foo',)) def test_size_invalid(self): - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMANIFEST.from_list, ('MANIFEST', 'foo', 'asdf')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMANIFEST.from_list, ('MANIFEST', 'foo', '5ds')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMANIFEST.from_list, ('MANIFEST', 'foo', '-5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDATA.from_list, ('DATA', 'foo', 'asdf')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDATA.from_list, ('DATA', 'foo', '5ds')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDATA.from_list, ('DATA', 'foo', '-5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMISC.from_list, ('MISC', 'foo', 'asdf')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMISC.from_list, ('MISC', 'foo', '5ds')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMISC.from_list, ('MISC', 'foo', '-5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST', 'foo', 'asdf')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST', 'foo', '5ds')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST', 'foo', '-5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryEBUILD.from_list, ('EBUILD', 'foo', 'asdf')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryEBUILD.from_list, ('EBUILD', 'foo', '5ds')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryEBUILD.from_list, ('EBUILD', 'foo', '-5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryAUX.from_list, ('AUX', 'foo', 'asdf')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryAUX.from_list, ('AUX', 'foo', '5ds')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryAUX.from_list, ('AUX', 'foo', '-5')) def test_checksum_short(self): - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMANIFEST.from_list, ('MANIFEST', 'foo', '0', 'md5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMANIFEST.from_list, ('MANIFEST', 'foo', '0', 'md5', 'd41d8cd98f00b204e9800998ecf8427e', 'sha1')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDATA.from_list, ('DATA', 'foo', '0', 'md5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDATA.from_list, ('DATA', 'foo', '0', 'md5', 'd41d8cd98f00b204e9800998ecf8427e', 'sha1')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMISC.from_list, ('MISC', 'foo', '0', 'md5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMISC.from_list, ('MISC', 'foo', '0', 'md5', 'd41d8cd98f00b204e9800998ecf8427e', 'sha1')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST', 'foo', '0', 'md5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST', 'foo', '0', 'md5', 'd41d8cd98f00b204e9800998ecf8427e', 'sha1')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryEBUILD.from_list, ('EBUILD', 'foo', '0', 'md5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryEBUILD.from_list, ('EBUILD', 'foo', '0', 'md5', 'd41d8cd98f00b204e9800998ecf8427e', 'sha1')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryAUX.from_list, ('AUX', 'foo', '0', 'md5')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryAUX.from_list, ('AUX', 'foo', '0', 'md5', 'd41d8cd98f00b204e9800998ecf8427e', 'sha1')) def test_invalid_value_count(self): - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMANIFEST.from_list, ('MANIFEST',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMANIFEST.from_list, ('MANIFEST', 'foo')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryIGNORE.from_list, ('IGNORE',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryIGNORE.from_list, ('IGNORE', 'foo', 'bar')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDATA.from_list, ('DATA',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDATA.from_list, ('DATA', 'foo')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMISC.from_list, ('MISC',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryMISC.from_list, ('MISC', 'foo')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryOPTIONAL.from_list, ('OPTIONAL',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryOPTIONAL.from_list, ('OPTIONAL', 'foo', 'bar')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryDIST.from_list, ('DIST', 'foo')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryEBUILD.from_list, ('EBUILD',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryEBUILD.from_list, ('EBUILD', 'foo')) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryAUX.from_list, ('AUX',)) - self.assertRaises(gemato.manifest.ManifestSyntaxError, + self.assertRaises(gemato.exceptions.ManifestSyntaxError, gemato.manifest.ManifestEntryAUX.from_list, ('AUX', 'foo')) diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py index 8257691..c16e7ff 100644 --- a/tests/test_recursiveloader.py +++ b/tests/test_recursiveloader.py @@ -9,6 +9,7 @@ import os import tempfile import unittest +import gemato.exceptions import gemato.recursiveloader @@ -177,7 +178,7 @@ DATA test 0 MD5 d41d8cd98f00b204e9800998ecf8427e def test_assert_path_verifies_stray_path(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - self.assertRaises(gemato.verify.ManifestMismatch, + self.assertRaises(gemato.exceptions.ManifestMismatch, m.assert_path_verifies, 'sub/stray') def test_get_file_entry_dict(self): @@ -227,7 +228,7 @@ DATA test 0 MD5 d41d8cd98f00b204e9800998ecf8427e def test_assert_directory_verifies_stray_file(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - self.assertRaises(gemato.verify.ManifestMismatch, + self.assertRaises(gemato.exceptions.ManifestMismatch, m.assert_directory_verifies, 'sub') @@ -499,7 +500,7 @@ DATA test 0 SHA1 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12 def test_assert_directory_verifies(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - with self.assertRaises(gemato.verify.ManifestMismatch) as cm: + with self.assertRaises(gemato.exceptions.ManifestMismatch) as cm: m.assert_directory_verifies('') self.assertListEqual(cm.exception.diff, [ @@ -529,7 +530,7 @@ MISC test.ebuild 0 MD5 d41d8cd98f00b204e9800998ecf8427e def test_get_file_entry_dict(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - self.assertRaises(gemato.recursiveloader.ManifestIncompatibleEntry, + self.assertRaises(gemato.exceptions.ManifestIncompatibleEntry, m.get_file_entry_dict, '') @@ -554,7 +555,7 @@ OPTIONAL test.ebuild def test_get_file_entry_dict(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - self.assertRaises(gemato.recursiveloader.ManifestIncompatibleEntry, + self.assertRaises(gemato.exceptions.ManifestIncompatibleEntry, m.get_file_entry_dict, '') @@ -579,7 +580,7 @@ OPTIONAL test.ebuild def test_get_file_entry_dict(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - self.assertRaises(gemato.recursiveloader.ManifestIncompatibleEntry, + self.assertRaises(gemato.exceptions.ManifestIncompatibleEntry, m.get_file_entry_dict, '') @@ -604,7 +605,7 @@ DATA test.ebuild 32 MD5 d41d8cd98f00b204e9800998ecf8427e def test_get_file_entry_dict(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - self.assertRaises(gemato.recursiveloader.ManifestIncompatibleEntry, + self.assertRaises(gemato.exceptions.ManifestIncompatibleEntry, m.get_file_entry_dict, '') @@ -629,13 +630,13 @@ DATA test.ebuild 0 MD5 9e107d9d372bb6826bd81d3542a419d6 def test_get_file_entry_dict(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - self.assertRaises(gemato.recursiveloader.ManifestIncompatibleEntry, + self.assertRaises(gemato.exceptions.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, + self.assertRaises(gemato.exceptions.ManifestIncompatibleEntry, m.assert_directory_verifies, '') @@ -674,7 +675,7 @@ MISC foo 0 MD5 d41d8cd98f00b204e9800998ecf8427e def test_assert_directory_verifies(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - self.assertRaises(gemato.verify.ManifestMismatch, + self.assertRaises(gemato.exceptions.ManifestMismatch, m.assert_directory_verifies, '') def test_assert_directory_verifies_nonstrict(self): @@ -698,7 +699,7 @@ OPTIONAL foo def test_assert_directory_verifies(self): m = gemato.recursiveloader.ManifestRecursiveLoader( os.path.join(self.dir, 'Manifest')) - self.assertRaises(gemato.verify.ManifestMismatch, + self.assertRaises(gemato.exceptions.ManifestMismatch, m.assert_directory_verifies, '') def test_assert_directory_verifies_nonstrict(self): diff --git a/tests/test_verify.py b/tests/test_verify.py index ccb3330..4902ec8 100644 --- a/tests/test_verify.py +++ b/tests/test_verify.py @@ -9,6 +9,7 @@ import socket import tempfile import unittest +import gemato.exceptions import gemato.manifest import gemato.verify @@ -496,11 +497,11 @@ class ExceptionVerificationTest(object): def testWrongSizeDATA(self): e = gemato.manifest.ManifestEntryDATA.from_list( ('DATA', os.path.basename(self.path), '0')) - self.assertRaises(gemato.verify.ManifestMismatch, + self.assertRaises(gemato.exceptions.ManifestMismatch, gemato.verify.assert_path_verifies, self.path, e) def testNone(self): - self.assertRaises(gemato.verify.ManifestMismatch, + self.assertRaises(gemato.exceptions.ManifestMismatch, gemato.verify.gemato.verify.assert_path_verifies, self.path, None) |