Move audit validation to test_utils
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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."""
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user