diff options
-rw-r--r-- | gemato/manifest.py | 8 | ||||
-rw-r--r-- | tests/test_manifest.py | 58 |
2 files changed, 66 insertions, 0 deletions
diff --git a/gemato/manifest.py b/gemato/manifest.py index 96479d3..262c7f3 100644 --- a/gemato/manifest.py +++ b/gemato/manifest.py @@ -275,6 +275,14 @@ MANIFEST_TAG_MAPPING = { } +def new_manifest_entry(tag, *args): + """ + Construct a Manifest entry for given @tag. @args are passed + to the constructor. + """ + return MANIFEST_TAG_MAPPING[tag](*args) + + class ManifestState(object): """ FSM constants for loading Manifest. diff --git a/tests/test_manifest.py b/tests/test_manifest.py index 8fd3b9c..973432a 100644 --- a/tests/test_manifest.py +++ b/tests/test_manifest.py @@ -371,3 +371,61 @@ class ManifestUtilityTest(unittest.TestCase): self.assertListEqual(list( gemato.manifest.manifest_hashes_to_hashlib(['SHA3_256', 'SHA256'])), ['sha3_256', 'sha256']) + + +class NewManifestEntryTest(unittest.TestCase): + """ + Tests for new_manifest_entry(). + """ + + def test_TIMESTAMP(self): + self.assertIsInstance( + gemato.manifest.new_manifest_entry('TIMESTAMP', + datetime.datetime(2000, 1, 1, 0, 0, 0)), + gemato.manifest.ManifestEntryTIMESTAMP) + + def test_MANIFEST(self): + self.assertIsInstance( + gemato.manifest.new_manifest_entry('MANIFEST', + 'test', 32, {}), + gemato.manifest.ManifestEntryMANIFEST) + + def test_IGNORE(self): + self.assertIsInstance( + gemato.manifest.new_manifest_entry('IGNORE', 'test'), + gemato.manifest.ManifestEntryIGNORE) + + def test_DATA(self): + self.assertIsInstance( + gemato.manifest.new_manifest_entry('DATA', + 'test', 32, {}), + gemato.manifest.ManifestEntryDATA) + + def test_MISC(self): + self.assertIsInstance( + gemato.manifest.new_manifest_entry('MISC', + 'test', 32, {}), + gemato.manifest.ManifestEntryMISC) + + def test_OPTIONAL(self): + self.assertIsInstance( + gemato.manifest.new_manifest_entry('OPTIONAL', 'test'), + gemato.manifest.ManifestEntryOPTIONAL) + + def test_DIST(self): + self.assertIsInstance( + gemato.manifest.new_manifest_entry('DIST', + 'test', 32, {}), + gemato.manifest.ManifestEntryDIST) + + def test_EBUILD(self): + self.assertIsInstance( + gemato.manifest.new_manifest_entry('EBUILD', + 'test', 32, {}), + gemato.manifest.ManifestEntryEBUILD) + + def test_AUX(self): + self.assertIsInstance( + gemato.manifest.new_manifest_entry('AUX', + 'test', 32, {}), + gemato.manifest.ManifestEntryAUX) |