From 2bd22cc74e8749fc490ef4bfb85179860886b2fa Mon Sep 17 00:00:00 2001 From: Lubomír Sedlář Date: Apr 01 2016 13:42:58 +0000 Subject: Fix atomic/ostree config validations Signed-off-by: Lubomír Sedlář --- diff --git a/pungi/phases/atomic_installer.py b/pungi/phases/atomic_installer.py index 54ce946..476ad1c 100644 --- a/pungi/phases/atomic_installer.py +++ b/pungi/phases/atomic_installer.py @@ -14,13 +14,13 @@ from ..wrappers import kojiwrapper, iso, lorax class AtomicInstallerPhase(ConfigGuardedPhase): name = 'atomic' - config_options = ( + config_options = [ { "name": "atomic", - "expected_types": [dict], + "expected_types": [list], "optional": True, } - ) + ] def __init__(self, compose): super(AtomicInstallerPhase, self).__init__(compose) diff --git a/pungi/phases/ostree.py b/pungi/phases/ostree.py index 1cdd2ac..36cbc97 100644 --- a/pungi/phases/ostree.py +++ b/pungi/phases/ostree.py @@ -13,13 +13,13 @@ from ..wrappers import scm, kojiwrapper class OSTreePhase(ConfigGuardedPhase): name = 'ostree' - config_options = ( + config_options = [ { "name": "ostree", - "expected_types": [dict], + "expected_types": [list], "optional": True, } - ) + ] def __init__(self, compose): super(OSTreePhase, self).__init__(compose) diff --git a/tests/test_atomic_installer_phase.py b/tests/test_atomic_installer_phase.py index 0f727a9..33f4961 100644 --- a/tests/test_atomic_installer_phase.py +++ b/tests/test_atomic_installer_phase.py @@ -16,6 +16,46 @@ from pungi.phases import atomic_installer as atomic class AtomicInstallerPhaseTest(helpers.PungiTestCase): + def test_validate(self): + compose = helpers.DummyCompose(self.topdir, { + 'atomic': [ + ("^Atomic$", { + "x86_64": { + "source_repo_from": "Everything", + "release": None, + "filename": "%(release_short)s-%(variant)s-%(arch)s-%(version)s-%(compose_date)s.iso", + "installpkgs": ["fedora-productimg-atomic"], + "add_template": ["/spin-kickstarts/atomic-installer/lorax-configure-repo.tmpl"], + "add_template_var": [ + "ostree_osname=fedora-atomic", + "ostree_ref=fedora-atomic/Rawhide/x86_64/docker-host", + ], + "add_arch_template": ["/spin-kickstarts/atomic-installer/lorax-embed-repo.tmpl"], + "add_arch_template_var": [ + "ostree_repo=https://kojipkgs.fedoraproject.org/compose/atomic/Rawhide/", + "ostree_osname=fedora-atomic", + "ostree_ref=fedora-atomic/Rawhide/x86_64/docker-host", + ] + } + }) + ] + }) + + phase = atomic.AtomicInstallerPhase(compose) + try: + phase.validate() + except: + self.fail('Correct config must validate') + + def test_validate_bad_conf(self): + compose = helpers.DummyCompose(self.topdir, { + 'atomic': 'yes please' + }) + + phase = atomic.AtomicInstallerPhase(compose) + with self.assertRaises(ValueError): + phase.validate() + @mock.patch('pungi.phases.atomic_installer.ThreadPool') def test_run(self, ThreadPool): cfg = mock.Mock() diff --git a/tests/test_ostree_phase.py b/tests/test_ostree_phase.py index 28f47d7..e4664e1 100755 --- a/tests/test_ostree_phase.py +++ b/tests/test_ostree_phase.py @@ -16,6 +16,35 @@ from pungi.phases import ostree class OSTreePhaseTest(helpers.PungiTestCase): + def test_validate(self): + compose = helpers.DummyCompose(self.topdir, { + 'ostree': [ + ("^Atomic$", { + "x86_64": { + "treefile": "fedora-atomic-docker-host.json", + "config_url": "https://git.fedorahosted.org/git/fedora-atomic.git", + "source_repo_from": "Everything", + "atomic_repo": "/mnt/koji/compose/atomic/Rawhide/" + } + }) + ] + }) + + phase = ostree.OSTreePhase(compose) + try: + phase.validate() + except: + self.fail('Correct config must validate') + + def test_validate_bad_conf(self): + compose = helpers.DummyCompose(self.topdir, { + 'ostree': 'yes please' + }) + + phase = ostree.OSTreePhase(compose) + with self.assertRaises(ValueError): + phase.validate() + @mock.patch('pungi.phases.ostree.ThreadPool') def test_run(self, ThreadPool): cfg = mock.Mock()