From 5d2ce55a8641a030ec6984089c51aa9313f46af1 Mon Sep 17 00:00:00 2001 From: selias Date: Tue, 12 Jul 2016 16:19:05 +0200 Subject: CSIT-49: HC Test: Policy - security groups - add test suite for ACLs - add keywords used in tests - add resource file with variables used in ACL tests - add methods and VAT templates for reading VPP ACL data Change-Id: I98c78bfbce67309ae33ebb05c04640f5029bf4e2 Signed-off-by: selias --- .../python/honeycomb/HcAPIKwInterfaces.py | 25 +++++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'resources/libraries/python/honeycomb') diff --git a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py index ff1589f217..4eaef11bdb 100644 --- a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py +++ b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py @@ -307,8 +307,8 @@ class InterfaceKeywords(object): :param node: Honeycomb node. :param interface: The name of interface. - :type interface: str :type node: dict + :type interface: str :return: Operational data about bridge domain settings in the interface. :rtype: dict @@ -1224,27 +1224,36 @@ class InterfaceKeywords(object): node, super_interface, path, None) @staticmethod - def compare_data_structures(data, ref): + def compare_data_structures(data, ref, ignore=()): """Checks if data obtained from UUT is as expected. :param data: Data to be checked. :param ref: Referential data used for comparison. + :param ignore: Dictionary keys to be ignored. :type data: dict :type ref: dict + :type ignore: iterable :raises HoneycombError: If a parameter from referential data is not present in operational data or if it has different value. """ + errors = "" + for key, item in ref.items(): + if key in ignore: + continue try: if data[key] != item: - raise HoneycombError("The value of parameter '{0}' is " - "incorrect. It should be " - "'{1}' but it is '{2}'". - format(key, item, data[key])) + errors += ("\nThe value of parameter '{0}' is " + "incorrect. It should be " + "'{1}' but it is '{2}'". + format(key, item, data[key])) except KeyError: - raise HoneycombError("The parameter '{0}' is not present in " - "operational data".format(key)) + errors += ("\nThe parameter '{0}' is not present in " + "operational data".format(key)) + + if errors: + raise HoneycombError(errors) @staticmethod def compare_interface_lists(list1, list2): -- cgit 1.2.3-korg