diff --git a/charms_openstack/charm/defaults.py b/charms_openstack/charm/defaults.py index 81f870e..3f9a676 100644 --- a/charms_openstack/charm/defaults.py +++ b/charms_openstack/charm/defaults.py @@ -103,6 +103,8 @@ def make_default_select_release_handler(): # First make an attempt of determining release from a charm # instance defined package codename dictionary. singleton = get_charm_instance() + if singleton.release_pkg is None: + raise RuntimeError("release_pkg is not set") release_version = singleton.get_os_codename_package( singleton.release_pkg, singleton.package_codenames, apt_cache_sufficient=(not singleton.source_config_key)) diff --git a/unit_tests/charms_openstack/charm/test_defaults.py b/unit_tests/charms_openstack/charm/test_defaults.py index bd34080..c2efa5e 100644 --- a/unit_tests/charms_openstack/charm/test_defaults.py +++ b/unit_tests/charms_openstack/charm/test_defaults.py @@ -119,6 +119,12 @@ class TestDefaults(BaseOpenStackCharmTest): self.assertEqual(release, 'one') kv.set.assert_not_called() kv.get.assert_called_once_with(chm.OPENSTACK_RELEASE_KEY, None) + # No release_pkg set, ensure a RuntimeError raised + kv.get.return_value = None + singleton.release_pkg = None + with self.assertRaises(RuntimeError): + h.map['function']() + singleton.release_pkg = "my-pkg" # No release set, ensure it calls os_release kv.reset_mock() kv.get.return_value = None