From a97296e32ab54aa001ec8f4f9abf7e0d4272ba30 Mon Sep 17 00:00:00 2001 From: Chris MacNaughton Date: Wed, 27 Feb 2019 08:24:36 +0100 Subject: [PATCH] Move audit validation to test_utils --- zaza/charm_tests/keystone/tests.py | 4 ++-- zaza/charm_tests/test_utils.py | 30 ++++++++++++++++++++++++++++++ zaza/utilities/generic.py | 27 --------------------------- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/zaza/charm_tests/keystone/tests.py b/zaza/charm_tests/keystone/tests.py index 05db548..f958ede 100644 --- a/zaza/charm_tests/keystone/tests.py +++ b/zaza/charm_tests/keystone/tests.py @@ -24,8 +24,8 @@ import zaza.model import zaza.utilities.exceptions as zaza_exceptions import zaza.utilities.juju as juju_utils import zaza.utilities.openstack as openstack_utils -import zaza.utilities.generic as generic_utils +import zaza.charm_tests.test_utils as test_utils from zaza.charm_tests.keystone import ( BaseKeystoneTest, DEMO_DOMAIN, @@ -169,7 +169,7 @@ class CharmOperationTest(BaseKeystoneTest): logging.info('Running `security-checklist` action' ' on Keystone leader unit') - generic_utils.audit_assertions( + test_utils.audit_assertions( zaza.model.run_action_on_leader( 'keystone', 'security-checklist', diff --git a/zaza/charm_tests/test_utils.py b/zaza/charm_tests/test_utils.py index 22de8ed..a28094e 100644 --- a/zaza/charm_tests/test_utils.py +++ b/zaza/charm_tests/test_utils.py @@ -38,6 +38,36 @@ def skipIfNotHA(service_name): return _skipIfNotHA_inner_1 +def audit_assertions(action, + expected_passes, + expected_failures=None, + expected_to_pass=True): + """Check expected assertion failures in security-checklist actions. + + :param action: Action object from running the security-checklist action + :type action: juju.action.Action + :param expected_passes: List of test names that are expected to pass + :type expected_passes: List(str) + :param expected_failures: List of test names that are expected to fail + :type expexted_failures: List(str) + """ + if expected_failures is None: + expected_failures = [] + if expected_to_pass: + assert action.data["status"] == "completed", \ + "Security check is expected to pass by default" + else: + assert action.data["status"] == "failed", \ + "Security check is not expected to pass by default" + + results = action.data['results'] + for key, value in results.items(): + if key in expected_failures: + assert "FAIL" in value, "Unexpected test pass: {}".format(key) + if key in expected_passes: + assert value == "PASS", "Unexpected failure: {}".format(key) + + class OpenStackBaseTest(unittest.TestCase): """Generic helpers for testing OpenStack API charms.""" diff --git a/zaza/utilities/generic.py b/zaza/utilities/generic.py index 72c7d21..e9e9e4c 100644 --- a/zaza/utilities/generic.py +++ b/zaza/utilities/generic.py @@ -68,33 +68,6 @@ def get_network_config(net_topology, ignore_env_vars=False, return net_info -def audit_assertions(action, expected_passes, expected_failures=None): - """Check expected assertion failures in security-checklist actions. - - :param action: Action object from running the security-checklist action - :type action: juju.action.Action - :param expected_passes: List of test names that are expected to pass - :type expected_passes: List(str) - :param expected_failures: List of test names that are expected to fail - :type expexted_failures: List(str) - """ - if expected_failures is None: - expected_failures = [] - if expected_failures: - assert action.data["status"] == "failed", \ - "Security check is not expected to pass by default" - else: - assert action.data["status"] == "completed", \ - "Security check is expected to pass by default" - - results = action.data['results'] - for key, value in results.items(): - if key in expected_failures: - assert "FAIL" in value, "Unexpected test pass: {}".format(key) - if key in expected_passes: - assert value == "PASS", "Unexpected failure: {}".format(key) - - def get_pkg_version(application, pkg): """Return package version.