Loading doc/checks.py +110 −29 Original line number Diff line number Diff line Loading @@ -4,14 +4,36 @@ from http import HTTPStatus class Checks: def __init__(self): self.checks = { 'Check Response Status Code': Checks.check_response_status_code, 'Check Response Body Containing Array Of URIs set to': Checks.check_response_body_containing_array_of_uris_set_to, 'Check Created Resources Set To': Checks.check_created_resources_set_to, 'Check Response Headers Containing Content-Type set to': Checks.check_response_headers_containing_content_type_set_to, 'Check Response Headers Link Not Empty':Checks.check_response_headers_link_not_empty, 'Check Response Headers Containing URI set to': Checks.check_response_headers_containing_uri_set_to, 'Check Response Headers ID Not Empty': Checks.check_response_headers_id_not_empty, 'Check Response Body Containing an Attribute set to': Checks.check_response_body_containing_an_attribute_set_to 'Check Response Status Code': Checks.check_response_status_code, 'Check Response Body Containing Array Of URIs set to': Checks.check_response_body_containing_array_of_uris_set_to, 'Check Created Resources Set To': Checks.check_created_resources_set_to, 'Check Response Headers Containing Content-Type set to': Checks.check_response_headers_containing_content_type_set_to, 'Check Response Headers Link Not Empty': Checks.check_response_headers_link_not_empty, 'Check Response Headers Containing URI set to': Checks.check_response_headers_containing_uri_set_to, 'Check Response Headers ID Not Empty': Checks.check_response_headers_id_not_empty, 'Check Response Body Containing an Attribute set to': Checks.check_response_body_containing_an_attribute_set_to, 'Check Response Body Containing Entity element': Checks.check_response_body_containing_entity_element, 'Check Response Body Containing List Containing Entity Elements': Checks.check_response_body_containing_list_containing_entity_elements, 'Check Response Body Containing List Containing Entity Elements With Different Types': Checks.check_response_body_containing_list_containing_entity_elements_with_different_types, 'Check Response Body Containing EntityTemporal element': Checks.check_response_body_containing_entitytemporal_element, 'Check Response Body Containing List Containing EntityTemporal elements': Checks.check_response_body_containing_list_containing_entitytemporal_elements, 'Check Response Body Containing Subscription element': Checks.check_response_body_containing_subscription_element, 'Check Response Body Containing List Containing Subscription elements': Checks.check_response_body_containing_list_containing_subscription_elements } @staticmethod Loading Loading @@ -57,7 +79,8 @@ class Checks: if "attribute_value" in kwargs: attribute_value = kwargs['attribute_value'] result = f"Response Body contains the attribute: '{attribute_name}', with the value: '{attribute_value}'" result = (f"Response Body contains the attribute: '{attribute_name}', " f"with the value: '{attribute_value}'") else: result = f"Response Body contains the attribute: '{attribute_name}'" Loading @@ -65,6 +88,54 @@ class Checks: else: raise Exception(f'ERROR, Expected status_code parameter but received: {kwargs}') @staticmethod def check_response_body_containing_entity_element(kwargs: list) -> str: return 'Response Body containing ${entity_representation}' @staticmethod def check_response_body_containing_list_containing_entity_elements(kwargs: list) -> str: return 'Response Body containing a list containing Entity elements, containing ${value} provided' @staticmethod def check_response_body_containing_list_containing_entity_elements_with_different_types(kwargs: list) -> str: return ('Response Body containing a list containing Entity elements, ' 'containing a list of entity types to be retrieved') @staticmethod def check_response_body_containing_entitytemporal_element(kwargs: list) -> str: return ('Response Body containing EntityTemporal element containing attribute instances ' 'in the time range specified by the NGSI-LD temporal query') @staticmethod def check_response_body_containing_list_containing_entitytemporal_elements(kwargs: list) -> str: if "timeRel" in kwargs and "timeAt" in kwargs: return (f"Response Body containing a list containing EntityTemporal elements containing entity type in the " f"list of entity types provided and entity id matching id pattern provided and attribute instances " f"'{kwargs['timeRel']}' '{kwargs['timeAt']}'") else: raise Exception(f'ERROR, timeRel and/or timeAt attributes were not provided, but received: {kwargs}') @staticmethod def check_response_body_containing_subscription_element(kwargs: list) -> str: return 'Response Body containing the representation of CSRS1' def check_response_body_containing_list_containing_subscription_elements(kwargs: list) -> str: if "number" in kwargs: number = kwargs['number'] if isinstance(number, int): number = int(number) if number == 1: return f"body set to list containing '{number}' subscription" elif number > 1: return f"body set to list containing '{number}' subscriptions" else: raise Exception(f'ERROR, number attribute must be an integer value gt 1') else: raise Exception(f'ERROR, number attribute must be an integer value') else: raise Exception(f'ERROR, number attribute was not provided, but received: {kwargs}') def get_checks(self, **kwargs) -> str: checking = None Loading @@ -82,6 +153,7 @@ class Checks: raise Exception(f"ERROR, checks type not supported: {checking}") return result """ then { the SUT sends a valid Response containing Loading @@ -102,21 +174,7 @@ then { """ * Check Response Body Content Check Response Body Containing Batch Operation Result Check Response Body Containing Entity element Check Response Body Containing List Containing Entity Elements Check Response Body Containing List Containing Entity Elements With Different Types Check Response Body Containing EntityTemporal element Check Response Body Containing List Containing EntityTemporal elements Check Response Body Containing Subscription element Check Response Body Containing List Containing Subscription elements (is not a final check) Check Response Body Containing Batch Operation Result Check Response Body Containing Number Of Entities Loading Loading @@ -169,15 +227,32 @@ then { if __name__ == "__main__": data = Checks() print(data.get_checks(checks='Check Response Status Code', status_code=201)) print(data.get_checks(checks='Check Response Status Code', status_code=201)) print(data.get_checks(checks='Check Response Body Containing Array Of URIs set to')) print(data.get_checks(checks='Check Created Resources Set To')) print(data.get_checks(checks='Check Response Headers Containing Content-Type set to', content_type='application/json')) print(data.get_checks(checks='Check Response Headers Containing Content-Type set to', content_type='application/json')) print(data.get_checks(checks='Check Response Headers Link Not Empty')) print(data.get_checks(checks='Check Response Headers Containing URI set to')) print(data.get_checks(checks='Check Response Headers ID Not Empty')) print(data.get_checks(checks='Check Response Body Containing an Attribute set to', attribute_name='status')) print(data.get_checks(checks='Check Response Body Containing an Attribute set to', attribute_name='status', attribute_value='active')) print(data.get_checks(checks='Check Response Body Containing an Attribute set to', attribute_name='status')) print(data.get_checks(checks='Check Response Body Containing an Attribute set to', attribute_name='status', attribute_value='active')) print(data.get_checks(checks='Check Response Body Containing Entity element')) print(data.get_checks(checks='Check Response Body Containing List Containing Entity Elements')) print(data.get_checks(checks='Check Response Body Containing List Containing Entity Elements With Different Types')) print(data.get_checks(checks='Check Response Body Containing EntityTemporal element')) print(data.get_checks(checks='Check Response Body Containing List Containing EntityTemporal elements', timeRel='after', timeAt='2020-07-01T12:05:00Z')) print(data.get_checks(checks='Check Response Body Containing Subscription element')) print(data.get_checks(checks='Check Response Body Containing List Containing Subscription elements', number=2)) print(data.get_checks(checks='Check Response Body Containing List Containing Subscription elements', number=1)) print() print(data.get_checks(checks= Loading @@ -185,4 +260,10 @@ if __name__ == "__main__": 'Check Response Body Containing Array Of URIs set to', 'Check Created Resources Set To'] , status_code=201)) print() # Check exceptions try: print(data.get_checks(checks='Check Response Body Containing an Attribute set to')) except Exception as e: print(e) Loading
doc/checks.py +110 −29 Original line number Diff line number Diff line Loading @@ -4,14 +4,36 @@ from http import HTTPStatus class Checks: def __init__(self): self.checks = { 'Check Response Status Code': Checks.check_response_status_code, 'Check Response Body Containing Array Of URIs set to': Checks.check_response_body_containing_array_of_uris_set_to, 'Check Created Resources Set To': Checks.check_created_resources_set_to, 'Check Response Headers Containing Content-Type set to': Checks.check_response_headers_containing_content_type_set_to, 'Check Response Headers Link Not Empty':Checks.check_response_headers_link_not_empty, 'Check Response Headers Containing URI set to': Checks.check_response_headers_containing_uri_set_to, 'Check Response Headers ID Not Empty': Checks.check_response_headers_id_not_empty, 'Check Response Body Containing an Attribute set to': Checks.check_response_body_containing_an_attribute_set_to 'Check Response Status Code': Checks.check_response_status_code, 'Check Response Body Containing Array Of URIs set to': Checks.check_response_body_containing_array_of_uris_set_to, 'Check Created Resources Set To': Checks.check_created_resources_set_to, 'Check Response Headers Containing Content-Type set to': Checks.check_response_headers_containing_content_type_set_to, 'Check Response Headers Link Not Empty': Checks.check_response_headers_link_not_empty, 'Check Response Headers Containing URI set to': Checks.check_response_headers_containing_uri_set_to, 'Check Response Headers ID Not Empty': Checks.check_response_headers_id_not_empty, 'Check Response Body Containing an Attribute set to': Checks.check_response_body_containing_an_attribute_set_to, 'Check Response Body Containing Entity element': Checks.check_response_body_containing_entity_element, 'Check Response Body Containing List Containing Entity Elements': Checks.check_response_body_containing_list_containing_entity_elements, 'Check Response Body Containing List Containing Entity Elements With Different Types': Checks.check_response_body_containing_list_containing_entity_elements_with_different_types, 'Check Response Body Containing EntityTemporal element': Checks.check_response_body_containing_entitytemporal_element, 'Check Response Body Containing List Containing EntityTemporal elements': Checks.check_response_body_containing_list_containing_entitytemporal_elements, 'Check Response Body Containing Subscription element': Checks.check_response_body_containing_subscription_element, 'Check Response Body Containing List Containing Subscription elements': Checks.check_response_body_containing_list_containing_subscription_elements } @staticmethod Loading Loading @@ -57,7 +79,8 @@ class Checks: if "attribute_value" in kwargs: attribute_value = kwargs['attribute_value'] result = f"Response Body contains the attribute: '{attribute_name}', with the value: '{attribute_value}'" result = (f"Response Body contains the attribute: '{attribute_name}', " f"with the value: '{attribute_value}'") else: result = f"Response Body contains the attribute: '{attribute_name}'" Loading @@ -65,6 +88,54 @@ class Checks: else: raise Exception(f'ERROR, Expected status_code parameter but received: {kwargs}') @staticmethod def check_response_body_containing_entity_element(kwargs: list) -> str: return 'Response Body containing ${entity_representation}' @staticmethod def check_response_body_containing_list_containing_entity_elements(kwargs: list) -> str: return 'Response Body containing a list containing Entity elements, containing ${value} provided' @staticmethod def check_response_body_containing_list_containing_entity_elements_with_different_types(kwargs: list) -> str: return ('Response Body containing a list containing Entity elements, ' 'containing a list of entity types to be retrieved') @staticmethod def check_response_body_containing_entitytemporal_element(kwargs: list) -> str: return ('Response Body containing EntityTemporal element containing attribute instances ' 'in the time range specified by the NGSI-LD temporal query') @staticmethod def check_response_body_containing_list_containing_entitytemporal_elements(kwargs: list) -> str: if "timeRel" in kwargs and "timeAt" in kwargs: return (f"Response Body containing a list containing EntityTemporal elements containing entity type in the " f"list of entity types provided and entity id matching id pattern provided and attribute instances " f"'{kwargs['timeRel']}' '{kwargs['timeAt']}'") else: raise Exception(f'ERROR, timeRel and/or timeAt attributes were not provided, but received: {kwargs}') @staticmethod def check_response_body_containing_subscription_element(kwargs: list) -> str: return 'Response Body containing the representation of CSRS1' def check_response_body_containing_list_containing_subscription_elements(kwargs: list) -> str: if "number" in kwargs: number = kwargs['number'] if isinstance(number, int): number = int(number) if number == 1: return f"body set to list containing '{number}' subscription" elif number > 1: return f"body set to list containing '{number}' subscriptions" else: raise Exception(f'ERROR, number attribute must be an integer value gt 1') else: raise Exception(f'ERROR, number attribute must be an integer value') else: raise Exception(f'ERROR, number attribute was not provided, but received: {kwargs}') def get_checks(self, **kwargs) -> str: checking = None Loading @@ -82,6 +153,7 @@ class Checks: raise Exception(f"ERROR, checks type not supported: {checking}") return result """ then { the SUT sends a valid Response containing Loading @@ -102,21 +174,7 @@ then { """ * Check Response Body Content Check Response Body Containing Batch Operation Result Check Response Body Containing Entity element Check Response Body Containing List Containing Entity Elements Check Response Body Containing List Containing Entity Elements With Different Types Check Response Body Containing EntityTemporal element Check Response Body Containing List Containing EntityTemporal elements Check Response Body Containing Subscription element Check Response Body Containing List Containing Subscription elements (is not a final check) Check Response Body Containing Batch Operation Result Check Response Body Containing Number Of Entities Loading Loading @@ -169,15 +227,32 @@ then { if __name__ == "__main__": data = Checks() print(data.get_checks(checks='Check Response Status Code', status_code=201)) print(data.get_checks(checks='Check Response Status Code', status_code=201)) print(data.get_checks(checks='Check Response Body Containing Array Of URIs set to')) print(data.get_checks(checks='Check Created Resources Set To')) print(data.get_checks(checks='Check Response Headers Containing Content-Type set to', content_type='application/json')) print(data.get_checks(checks='Check Response Headers Containing Content-Type set to', content_type='application/json')) print(data.get_checks(checks='Check Response Headers Link Not Empty')) print(data.get_checks(checks='Check Response Headers Containing URI set to')) print(data.get_checks(checks='Check Response Headers ID Not Empty')) print(data.get_checks(checks='Check Response Body Containing an Attribute set to', attribute_name='status')) print(data.get_checks(checks='Check Response Body Containing an Attribute set to', attribute_name='status', attribute_value='active')) print(data.get_checks(checks='Check Response Body Containing an Attribute set to', attribute_name='status')) print(data.get_checks(checks='Check Response Body Containing an Attribute set to', attribute_name='status', attribute_value='active')) print(data.get_checks(checks='Check Response Body Containing Entity element')) print(data.get_checks(checks='Check Response Body Containing List Containing Entity Elements')) print(data.get_checks(checks='Check Response Body Containing List Containing Entity Elements With Different Types')) print(data.get_checks(checks='Check Response Body Containing EntityTemporal element')) print(data.get_checks(checks='Check Response Body Containing List Containing EntityTemporal elements', timeRel='after', timeAt='2020-07-01T12:05:00Z')) print(data.get_checks(checks='Check Response Body Containing Subscription element')) print(data.get_checks(checks='Check Response Body Containing List Containing Subscription elements', number=2)) print(data.get_checks(checks='Check Response Body Containing List Containing Subscription elements', number=1)) print() print(data.get_checks(checks= Loading @@ -185,4 +260,10 @@ if __name__ == "__main__": 'Check Response Body Containing Array Of URIs set to', 'Check Created Resources Set To'] , status_code=201)) print() # Check exceptions try: print(data.get_checks(checks='Check Response Body Containing an Attribute set to')) except Exception as e: print(e)