From 0da19e39ebfddc1e3344e35ff28a7cb1413606a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20L=C3=B3pez=20Aguilar?= Date: Tue, 16 Jan 2024 11:28:56 +0100 Subject: [PATCH 01/12] Resolve issues in 038_01, 038_02, and 038_05 --- .../038_01.robot | 15 +++++++- .../038_02.robot | 18 +++++++--- .../038_05.robot | 2 +- doc/analysis/generaterobotdata.py | 1 - resources/AssertionUtils.resource | 34 +++++++++++++++++++ resources/HttpUtils.resource | 5 +-- 6 files changed, 65 insertions(+), 10 deletions(-) diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_01.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_01.robot index 60796e30..9f671e39 100644 --- a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_01.robot +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_01.robot @@ -26,9 +26,22 @@ ${subscription_payload_file_path}= csourceSubscriptions/subscription-sample ... subscription_id=${subscription_id} ... context=${ngsild_test_suite_context} ... accept=${CONTENT_TYPE_LD_JSON} - ${ignored_attributes}= Create List ${status_regex_expr} + + # We need to ignore the Additional Members ('lastFailure', 'lastNotification', 'timesFailed', 'timesSent') + ${ignored_attributes}= Create List + ... ${status_regex_expr} + ... ${lastfailure_regex_expr} + ... ${lastNotification_regex_expr} + ... ${timesFailed_regex_expr} + ... ${timesSent_regex_expr} + Check Created Resource Set To ${subscription_payload} ${response1.json()} ${ignored_attributes} + Check Dictionary Might Contain Additional Members ${response1.json()} lastNotification + Check Dictionary Might Contain Additional Members ${response1.json()} lastFailure + Check Dictionary Might Contain Additional Members ${response1.json()} lastSuccess + Check Dictionary Might Contain Additional Members ${response1.json()} timesSent + *** Keywords *** Generate Random Ids For Context Source Registration Subscriptions diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_02.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_02.robot index be5f0cae..fe198aac 100644 --- a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_02.robot +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_02.robot @@ -4,13 +4,13 @@ Documentation Check that you can create a context source registration subs Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistrationSubscription.resource Resource ${EXECDIR}/resources/AssertionUtils.resource Resource ${EXECDIR}/resources/JsonUtils.resource -Resource ${EXECDIR}/resources/HttpUtils.resource Suite Teardown Delete Created Context Source Registration Subscriptions *** Variables *** ${subscription_payload_file_path}= csourceSubscriptions/subscription-sample.jsonld +${subscription_id}= ${EMPTY} *** Test Cases *** @@ -18,11 +18,15 @@ ${subscription_payload_file_path}= csourceSubscriptions/subscription-sample [Documentation] Check that you can create a context source registration subscription without providing an id and it will be automatically generated [Tags] csrsub-create 5_11_2 ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} + Remove From Dictionary ${subscription_payload} id ${response}= Create Context Source Registration Subscription ${subscription_payload} - ${subscription_id}= Fetch Id From Response Location Header ${response.headers} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${subscription_id} ${response.headers} + + Dictionary Should Contain Key ${response.headers} Location msg=HTTP Headers do not contain key 'Location' + ${subscription_id}= Get From Dictionary ${response.headers} Location Set Suite Variable ${subscription_id} + + Check Response Status Code 201 ${response.status_code} + ${response1}= Retrieve Context Source Registration Subscription ... subscription_id=${subscription_id} ... context=${ngsild_test_suite_context} @@ -33,4 +37,8 @@ ${subscription_payload_file_path}= csourceSubscriptions/subscription-sample *** Keywords *** Delete Created Context Source Registration Subscriptions - Delete Context Source Registration Subscription ${subscription_id} + IF "${subscription_id}" != "${EMPTY}" + Delete Context Source Registration Subscription ${subscription_id} + ELSE + Log To Console \nThere was no Context Source Registration Subscription to delete\n + END diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_05.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_05.robot index e3774476..17a1935b 100644 --- a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_05.robot +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_05.robot @@ -20,7 +20,7 @@ ${subscription_payload_file_path}= csourceSubscriptions/subscription-expire [Tags] csrsub-create 5_11_2 ${subscription_payload_sample}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} ${current_date}= Get Current Date time_zone=UTC result_format=${date_format} - ${expiresAt}= Add Time To Date ${current_date} 10 seconds date_format=${date_format} + ${expiresAt}= Add Time To Date ${current_date} 10 seconds result_format=${date_format} ${subscription_payload}= Update Value To JSON ${subscription_payload_sample} $..expiresAt ${expiresAt} ${response}= Create Context Source Registration Subscription ${subscription_payload} Check Response Status Code 201 ${response.status_code} diff --git a/doc/analysis/generaterobotdata.py b/doc/analysis/generaterobotdata.py index 65a6d527..6c027032 100644 --- a/doc/analysis/generaterobotdata.py +++ b/doc/analysis/generaterobotdata.py @@ -15,7 +15,6 @@ class GenerateRobotData: self.config_variables = ParseVariablesFile() self.robot = ParseRobotFile(filename=robot_file, execdir=execdir, config_file=self.config_variables) - # TODO: the robot file can provide several ApiUtils not only one self.apiutils = [ParseApiUtilsFile(filename=file) for file in self.robot.resource_files] self.robot.set_apiutils(self.apiutils) diff --git a/resources/AssertionUtils.resource b/resources/AssertionUtils.resource index f288c8a8..1650e4cd 100755 --- a/resources/AssertionUtils.resource +++ b/resources/AssertionUtils.resource @@ -14,6 +14,10 @@ ${notification_timestamps_regex_expr}= root\\['last.*'\\] ${notification_endpoint_uri_regex_expr}= root\\['endpoint'\\]\\['uri'\\] ${context_regex_expr}= root\\['@context'\\] ${status_regex_expr}= root\\['status'\\] +${lastfailure_regex_expr}= root\\['lastFailure'\\] +${lastNotification_regex_expr}= root\\['lastNotification'\\] +${timesFailed_regex_expr}= root\\['timesFailed'\\] +${timesSent_regex_expr}= root\\['timesSent'\\] *** Keywords *** @@ -444,3 +448,33 @@ Check Retrieving Context Source Registration ... accept=${accept} ${ignored_attributes}= Create List ${status_regex_expr} @context Check Updated Resource Set To ${registration_payload} ${response.json()} ${ignored_attributes} + +Check Dictionary Might Contain Additional Members + # Check the Additional Members 5.2.14.2 in the NotificationParams data structure + [Arguments] ${dictionary} ${key} + Log Dictionary Might Contain Key with a specific type + Log Dictionary: ${dictionary} + Log Key: ${key} + + ${value}= Evaluate $dictionary.get($key) + + IF '${value}' != '' and '${value}' != 'None' + IF "${key}" == "lastNotification" or "${key}" == "lastFailure" or "${key}" == "lastSuccess" + # Need to check that there is a DateTime value + ${date}= Parse Ngsild Date ${dictionary}[${key}] + Should Not Be Equal + ... ${date} + ... ${None} + ... The Additional Member ${key} contains a value (${value}) that it is not in DateTime format + END + IF "${key}" == "timesSent" + # Need to check that there is a Integer value + ${type int}= Evaluate type(${dictionary}[${key}]).__name__ + Should Be Equal + ... ${type int} + ... int + ... The Additonal Member ${key} contains a value (${value}) that it is not in Number format + END + ELSE + Log The key '${key}' is not present in the dictionary + END diff --git a/resources/HttpUtils.resource b/resources/HttpUtils.resource index 8c68b6a0..b150ea68 100755 --- a/resources/HttpUtils.resource +++ b/resources/HttpUtils.resource @@ -1,10 +1,11 @@ *** Settings *** Variables ./variables.py -Library String +Library Collections *** Keywords *** Fetch Id From Response Location Header [Arguments] ${response_headers} - ${id}= Fetch From Right ${response_headers['Location']} / + Dictionary Should Contain Key ${response_headers} Location msg=HTTP Headers do not contain key 'Location' + ${id}= Get From Dictionary ${response_headers} Location RETURN ${id} -- GitLab From a579aeadc7506d5dca90eef18db942102a9f9948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20L=C3=B3pez=20Aguilar?= Date: Thu, 15 Feb 2024 09:43:09 +0100 Subject: [PATCH 02/12] Update keywords generation and update robotframework-tidy package --- README.md | 2 +- doc/analysis/generaterobotdata.py | 49 +++++++++++-------- doc/analysis/initial_setup.py | 14 ++++-- doc/analysis/parseapiutilsfile.py | 17 +++---- doc/analysis/parserobotfile.py | 4 +- doc/files/CommonBehaviours/044_01.json | 5 +- doc/files/CommonBehaviours/044_02.json | 5 +- .../Consumption/018_02.json | 4 +- .../Consumption/018_04.json | 4 +- .../Consumption/018_05.json | 1 + .../Consumption/018_06.json | 6 ++- .../Consumption/020_03.json | 5 +- .../Consumption/020_04.json | 6 ++- .../Consumption/020_05.json | 6 ++- .../Consumption/020_09.json | 6 ++- .../Consumption/021_01.json | 6 ++- .../Consumption/021_09.json | 6 ++- .../Consumption/021_10.json | 5 +- .../Consumption/021_11.json | 6 ++- .../Consumption/021_13.json | 6 ++- .../Consumption/022_01.json | 6 ++- .../Consumption/023_01.json | 6 ++- .../Consumption/025_01.json | 6 ++- .../Consumption/026_01.json | 6 ++- .../ContextInformation/Provision/001_01.json | 5 +- .../ContextInformation/Provision/001_02.json | 4 +- .../ContextInformation/Provision/001_04.json | 4 +- .../ContextInformation/Provision/001_05.json | 4 +- .../ContextInformation/Provision/001_07.json | 4 +- .../ContextInformation/Provision/002_02.json | 4 +- .../ContextInformation/Provision/003_01.json | 5 +- .../ContextInformation/Provision/003_03.json | 4 +- .../ContextInformation/Provision/003_04.json | 4 +- .../ContextInformation/Provision/003_05.json | 4 +- .../ContextInformation/Provision/003_07.json | 4 +- .../ContextInformation/Provision/004_01.json | 5 +- .../ContextInformation/Provision/004_02.json | 6 ++- .../ContextInformation/Provision/004_03.json | 6 ++- .../ContextInformation/Provision/004_04.json | 6 ++- .../ContextInformation/Provision/004_05.json | 4 +- .../ContextInformation/Provision/004_06.json | 4 +- .../ContextInformation/Provision/005_01.json | 6 ++- .../ContextInformation/Provision/005_02.json | 6 ++- .../ContextInformation/Provision/005_04.json | 8 +-- .../ContextInformation/Provision/006_01.json | 4 +- .../ContextInformation/Provision/006_02.json | 4 +- .../ContextInformation/Provision/006_03.json | 4 +- .../ContextInformation/Provision/007_01.json | 5 +- .../ContextInformation/Provision/007_02.json | 4 +- .../ContextInformation/Provision/007_03.json | 4 +- .../ContextInformation/Provision/009_01.json | 4 +- .../ContextInformation/Provision/009_02.json | 8 +-- .../ContextInformation/Provision/010_01.json | 6 ++- .../ContextInformation/Provision/010_02.json | 6 ++- .../ContextInformation/Provision/010_04.json | 6 ++- .../ContextInformation/Provision/010_05.json | 5 +- .../ContextInformation/Provision/011_01.json | 6 ++- .../ContextInformation/Provision/011_02.json | 6 ++- .../ContextInformation/Provision/011_04.json | 5 +- .../ContextInformation/Provision/012_01.json | 6 ++- .../ContextInformation/Provision/012_02.json | 6 ++- .../ContextInformation/Provision/012_03.json | 6 ++- .../ContextInformation/Provision/013_01.json | 5 +- .../ContextInformation/Provision/013_02.json | 6 ++- .../ContextInformation/Provision/013_03.json | 6 ++- .../ContextInformation/Provision/014_02.json | 4 +- .../ContextInformation/Provision/014_04.json | 5 +- .../ContextInformation/Provision/015_01.json | 6 ++- .../ContextInformation/Provision/015_02.json | 6 ++- .../ContextInformation/Provision/015_03.json | 6 ++- .../ContextInformation/Provision/016_02.json | 6 ++- .../ContextInformation/Provision/016_03.json | 6 ++- .../ContextInformation/Provision/017_02.json | 6 ++- .../ContextInformation/Provision/017_03.json | 6 ++- .../Subscription/028_02.json | 4 +- .../Subscription/028_03.json | 1 + .../Subscription/029_01.json | 4 +- .../Subscription/029_07.json | 1 + .../Subscription/029_08.json | 1 + .../Subscription/030_01.json | 4 +- .../Subscription/031_02.json | 6 ++- .../Subscription/032_01.json | 4 +- .../Subscription/046_01.json | 6 ++- .../Subscription/046_02.json | 5 +- .../Subscription/046_03.json | 6 ++- .../Subscription/046_04.json | 5 +- .../Subscription/046_05.json | 5 +- .../Subscription/046_07.json | 2 + .../Subscription/046_08.json | 2 + .../Subscription/046_09.json | 5 +- .../Subscription/046_10.json | 5 +- .../Subscription/046_11.json | 6 ++- .../Subscription/046_12.json | 6 ++- .../Subscription/046_13.json | 4 ++ .../Subscription/046_14.json | 6 ++- doc/files/ContextSource/Discovery/036_01.json | 4 +- doc/files/ContextSource/Discovery/036_05.json | 6 ++- doc/files/ContextSource/Discovery/037_01.json | 6 ++- doc/files/ContextSource/Discovery/037_03.json | 4 +- doc/files/ContextSource/Discovery/037_05.json | 5 +- doc/files/ContextSource/Discovery/037_06.json | 6 ++- doc/files/ContextSource/Discovery/037_07.json | 6 ++- doc/files/ContextSource/Discovery/037_09.json | 5 +- doc/files/ContextSource/Discovery/037_10.json | 6 ++- doc/files/ContextSource/Discovery/037_11.json | 6 ++- .../ContextSource/Registration/033_03.json | 5 +- .../ContextSource/Registration/033_10.json | 4 +- .../ContextSource/Registration/034_01.json | 6 ++- .../ContextSource/Registration/034_02.json | 6 ++- .../ContextSource/Registration/034_04.json | 5 +- .../ContextSource/Registration/034_05.json | 6 ++- .../ContextSource/Registration/034_06.json | 6 ++- .../ContextSource/Registration/035_02.json | 6 ++- .../RegistrationSubscription/038_07.json | 5 +- .../RegistrationSubscription/038_08.json | 4 +- .../RegistrationSubscription/039_01.json | 5 +- .../RegistrationSubscription/039_04.json | 6 ++- .../RegistrationSubscription/039_05.json | 5 +- .../RegistrationSubscription/040_01.json | 5 +- .../RegistrationSubscription/041_01.json | 5 +- .../RegistrationSubscription/041_02.json | 6 ++- .../RegistrationSubscription/041_03.json | 6 ++- .../RegistrationSubscription/041_04.json | 4 +- .../RegistrationSubscription/042_01.json | 4 +- .../RegistrationSubscription/047_02.json | 5 +- .../RegistrationSubscription/047_03.json | 5 +- .../RegistrationSubscription/047_04.json | 5 +- .../RegistrationSubscription/047_05.json | 5 +- .../RegistrationSubscription/047_06.json | 5 +- .../RegistrationSubscription/047_07.json | 6 ++- .../RegistrationSubscription/047_08.json | 5 +- .../RegistrationSubscription/047_10.json | 5 +- .../RegistrationSubscription/047_12.json | 5 +- .../RegistrationSubscription/047_13.json | 5 +- .../RegistrationSubscription/047_14.json | 5 +- .../RegistrationSubscription/047_15.json | 5 +- .../RegistrationSubscription/047_16.json | 6 ++- requirements.txt | 2 +- 138 files changed, 590 insertions(+), 167 deletions(-) diff --git a/README.md b/README.md index 74123594..91331c39 100644 --- a/README.md +++ b/README.md @@ -147,7 +147,7 @@ Robot Framework. Our recommendations are: - Install [Robot Framework Language Server](https://plugins.jetbrains.com/plugin/16086-robot-framework-language-server) - Define as variable the path of the working directory. In Settings > Languages & Frameworks > Robot Framework -(Project), insert the following: `{"EXECDIR": "{path}/auth-test-suite"}`. +(Project), insert the following: `{"EXECDIR": "{path}/ngsi-ld-test-suite"}`. ### Run configurations (PyCharm) diff --git a/doc/analysis/generaterobotdata.py b/doc/analysis/generaterobotdata.py index 6c027032..ca6f418d 100644 --- a/doc/analysis/generaterobotdata.py +++ b/doc/analysis/generaterobotdata.py @@ -1,9 +1,9 @@ from os.path import dirname from robot.api import TestSuiteBuilder -from analysis.parserobotfile import ParseRobotFile -from analysis.parseapiutilsfile import ParseApiUtilsFile -from analysis.parsevariablesfile import ParseVariablesFile -from analysis.initial_setup import InitialSetup +from doc.analysis.parserobotfile import ParseRobotFile +from doc.analysis.parseapiutilsfile import ParseApiUtilsFile +from doc.analysis.parsevariablesfile import ParseVariablesFile +from doc.analysis.initial_setup import InitialSetup from re import match, findall, finditer, sub, MULTILINE @@ -102,7 +102,6 @@ class GenerateRobotData: self.initial_setup = InitialSetup() - def get_info(self): self.test_suite['robotpath'] = (self.robot_file.replace(f'{self.execdir}/TP/NGSI-LD/', '') .replace(f'/{self.robot.test_suite}.robot', '')) @@ -122,7 +121,7 @@ class GenerateRobotData: # Generate the initial_condition of the test suite self.test_suite['initial_condition'] = self.generate_initial_condition() - def generate_initial_condition(self) -> str : + def generate_initial_condition(self) -> str: aux = [x['setup'] for x in self.test_cases] if all(element == aux[0] for element in aux[1:]): aux = self.initial_setup.get_initial_condition(initial_condition=aux[0]) @@ -131,7 +130,8 @@ class GenerateRobotData: print(f'Something went wrong, the test suite {self.suite.resource.source} ' f'has different "setup" values for its test cases.') - def get_permutation_keys(self, data): + @staticmethod + def get_permutation_keys(data): all_keys = set().union(*data) excluded_keys = ['doc', 'permutation_tp_id', 'setup', 'teardown', 'name', 'tags'] all_keys = [x for x in all_keys if x not in excluded_keys] @@ -154,7 +154,7 @@ class GenerateRobotData: def get_params(self, test_case: str): test_case = self.get_data_template(string=test_case) - lines_starting_response = findall(r'^\s*\$\{response\}.*|^\s*\$\{notification\}.*', test_case, MULTILINE) + lines_starting_response = findall(r'^\s*\$\{response}.*|^\s*\$\{notification}.*', test_case, MULTILINE) # If there is more than one line, it means that the test case has several operations, all of them to # create the environment content to execute the last one, which is the correct one to test the Test Case @@ -171,7 +171,7 @@ class GenerateRobotData: aux = [x for x in aux if x != ''] params = list() - request = str() + request = list() # Get the list of params of the function, they are the keys if ' ... ' in aux[1]: @@ -181,7 +181,7 @@ class GenerateRobotData: # We are in the case that the attributes are in following lines for i in range(1, len(aux)): if ' ... ' in aux[i]: - regex = '(\s{4})*\s{4}\.{3}\s{4}(.*)' + regex = r'(\s{4})*\s{4}\.{3}\s{4}(.*)' param = match(pattern=regex, string=aux[i]) if aux: params.append(param.groups()[1]) @@ -193,8 +193,8 @@ class GenerateRobotData: matches = finditer(regex, response_to_check, MULTILINE) request = aux[0].split(' ')[2] - # We have two options from here, or the parameters are defined in the same line or the parameters are defined in - # following lines, next lines + # We have two options from here, or the parameters are defined in the same line or the parameters are + # defined in following lines, next lines for a_match in matches: # Check that we have 1 group matched if len(a_match.groups()) == 1: @@ -215,6 +215,9 @@ class GenerateRobotData: request, params = self.get_params(test_case=string) + verb = str() + query_param = str() + url = str() for data in self.apiutils: verb, url, query_param = data.get_response(keyword=request) if verb != '': @@ -245,6 +248,7 @@ class GenerateRobotData: key = header_key[0] value = self.get_header_value(key=key) else: + aux = list() # 2nd case, maybe the params are defined in the way = for k in self.headers: aux = [x for x in params if k in x] @@ -270,10 +274,10 @@ class GenerateRobotData: def get_values_url(self, keys: list, query_param: bool, request: str, params: list) -> str: data = [self.get_value_url(key=x, request=request, params=params) for x in keys] - if query_param == False: - data = '/'.join(data).replace('//', '/').replace('?/','?') + if not query_param: + data = '/'.join(data).replace('//', '/').replace('?/', '?') else: - aux = '/'.join(data[:-1]).replace('//', '/').replace('?/','?') + aux = '/'.join(data[:-1]).replace('//', '/').replace('?/', '?') data = f"{aux}?{data[-1]}" return data @@ -374,6 +378,8 @@ class GenerateRobotData: tp_id = self.generate_name() reference, pics = self.generate_reference(version=version) + # TODO: robotframework==7.0 has not property keywords in the class TestSuite(), we can get the data from + # [x.to_dict()['name'] for x in list(self.suite.resource.keywords)] but with some differences in execution code self.test_suite = { 'tp_id': tp_id, 'test_objective': self.suite.doc, @@ -381,7 +387,8 @@ class GenerateRobotData: 'config_id': str(), 'parent_release': version, 'pics_selection': pics, - 'keywords': [str(x) for x in self.suite.keywords], + # 'keywords': [str(x) for x in self.suite.keywords], + 'keywords': [x.to_dict()['name'] for x in list(self.suite.resource.keywords)], 'teardown': str(self.suite.teardown), 'initial_condition': str(), 'test_cases': list() @@ -493,7 +500,6 @@ class GenerateRobotData: self.args = dict() _ = [self.args.update(x) for x in args] - template_name = list(set([list(x.keywords)[0].name for x in self.suite.tests]))[0] # Due to the information of the tags are contained in the Keyword description of the template, we need to @@ -534,7 +540,8 @@ class GenerateRobotData: return reference, pics - def get_substring(self, string: str, key: str): + @staticmethod + def get_substring(string: str, key: str): pos1 = string.find(key) - 1 pos2 = string[pos1:].find('\n') result = string[pos1:pos1+pos2].split(' ') @@ -545,15 +552,15 @@ class GenerateRobotData: # check_tags = all(item == tags[0] for item in tags) # # if check_tags is False or len(tags) == 0: - # raise Exception(f'ERROR: the Test Suite {{self.suite.name}} has different clauses or no clauses (Tags): {tags}\n' - # f'Unable to select the corresponding Reference of this Test Suite') + # raise Exception(f'ERROR: the Test Suite {{self.suite.name}} has different clauses or no clauses (Tags): ' + # f'{tags}\nUnable to select the corresponding Reference of this Test Suite') # else: # # All the clauses are the same, so we select the first one # reference = f'{{self.references[version]}}{tags[0].replace("_", ".")}' # pics = f'PICS_{tags[0]}' # # return reference, pics - aux = [x for x in tags if match(pattern='^(\d+_\d+_\d+)', string=x)] + aux = [x for x in tags if match(pattern=r'^(\d+_\d+_\d+)', string=x)] if len(aux) == 0: raise Exception( diff --git a/doc/analysis/initial_setup.py b/doc/analysis/initial_setup.py index 0ac02753..a23d9077 100644 --- a/doc/analysis/initial_setup.py +++ b/doc/analysis/initial_setup.py @@ -227,12 +227,12 @@ class InitialSetup: if len(deleted_setup) != 0: print(f" WARNING: Some of the Setup functions were deleted:\n{deleted_setup}") else: - print(" INFO: All current Setup functions are used in the Robot files") + print(f" INFO: All current Setup functions are used in the Robot files") if len(not_included_keys) != 0: print(f" ERROR: Some Setup functions are not include in the Class:\n{not_included_keys}") else: - print(" INFO: All the current Setup functions used in Robot files are included in the Class") + print(f" INFO: All the current Setup functions used in Robot files are included in the Class") print() @@ -264,14 +264,20 @@ class InitialSetup: def get_initial_condition(self, initial_condition: str) -> str: try: - return self.init[initial_condition] + if initial_condition is not None: + data = self.init[initial_condition] + else: + data = '''with { + the SUT containing an initial state +}''' except KeyError: print(f"ERROR: the initial condition '{initial_condition}' is not defined in the dictionary. " f"Please check it and add the new initial condition.") data = '''with { the SUT containing an initial state }''' - return data + + return data if __name__ == "__main__": diff --git a/doc/analysis/parseapiutilsfile.py b/doc/analysis/parseapiutilsfile.py index 3c55f93a..d1caf382 100644 --- a/doc/analysis/parseapiutilsfile.py +++ b/doc/analysis/parseapiutilsfile.py @@ -21,10 +21,9 @@ class ParseApiUtilsFile: string = string[index:] string = string.split('\n') - index = None for i, item in enumerate(string): if 'response' in item: - regex = "\s{4}\$\{response\}=\s{4}(POST|GET|PUT|PATCH|DELETE).*" + regex = r"\s{4}\$\{response\}=\s{4}(POST|GET|PUT|PATCH|DELETE).*" match = re.match(pattern=regex, string=item) if match: @@ -35,8 +34,8 @@ class ParseApiUtilsFile: return verb, url, query_param @staticmethod - def get_url_request(url: str) -> list: - # We have two options, the url is defined in the same line of the response or it is defined in the following + def get_url_request(url: str) -> [list, bool]: + # We have two options, the url is defined in the same line of the response, or it is defined in the following # lines with '...' keys = list() parameters = list() @@ -57,7 +56,7 @@ class ParseApiUtilsFile: aux = parameters[0] query_param = True - keys = re.split(r'\$|/', aux) + keys = re.split(r'[$/]', aux) keys = [k for k in keys if k != ''] if len(parameters) != 0: @@ -68,7 +67,7 @@ class ParseApiUtilsFile: match = re.match(pattern=regex, string=url) if match: aux = match.groups()[0] - keys = re.split(r'\$|/', aux) + keys = re.split(r'[$/]', aux) keys = [k for k in keys if k != ''] return keys, query_param @@ -81,7 +80,7 @@ class ParseApiUtilsFile: def get_variables_data_variables(self, string): # Get the simple variables from the file - regex = "^(\$\{.*\})\s*(.*)\n" + regex = r"^(\$\{.*\})\s*(.*)\n" matches = re.finditer(regex, string, re.MULTILINE) for match in matches: @@ -94,7 +93,7 @@ class ParseApiUtilsFile: def get_variables_data_dictionaries(self, string): # Get the dictionary variables from the file - regex = '(\&\{.*\})' + regex = r'(\&\{.*\})' matches = re.finditer(regex, string, re.MULTILINE) for match in matches: # Check that we have two groups matched @@ -109,7 +108,7 @@ class ParseApiUtilsFile: index = aux.find('\n${') aux = aux[:index + 1] - regex = '\.{3}[ ]*([a-zA-Z]+)=(.*)\n' + regex = r'\.{3}[ ]*([a-zA-Z]+)=(.*)\n' matches2 = re.finditer(regex, aux, re.MULTILINE) dict_values = dict() for match2 in matches2: diff --git a/doc/analysis/parserobotfile.py b/doc/analysis/parserobotfile.py index 6fe294d6..2d9666b5 100644 --- a/doc/analysis/parserobotfile.py +++ b/doc/analysis/parserobotfile.py @@ -1,7 +1,7 @@ import re import os -from analysis.checks import Checks -from analysis.requests import Requests +from doc.analysis.checks import Checks +from doc.analysis.requests import Requests class ParseRobotFile: diff --git a/doc/files/CommonBehaviours/044_01.json b/doc/files/CommonBehaviours/044_01.json index 08dc3317..8f4f8182 100644 --- a/doc/files/CommonBehaviours/044_01.json +++ b/doc/files/CommonBehaviours/044_01.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_4", - "keywords": [], + "keywords": [ + "Create Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/CommonBehaviours/044_02.json b/doc/files/CommonBehaviours/044_02.json index 3ffd349f..e8b9b514 100644 --- a/doc/files/CommonBehaviours/044_02.json +++ b/doc/files/CommonBehaviours/044_02.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_4", - "keywords": [], + "keywords": [ + "Create Initial Subscription", + "Delete Initial Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Subscription ${subscription} \n with an id set to ${subscription_id} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/018_02.json b/doc/files/ContextInformation/Consumption/018_02.json index 68c66c6d..1d80e2b4 100644 --- a/doc/files/ContextInformation/Consumption/018_02.json +++ b/doc/files/ContextInformation/Consumption/018_02.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_1", - "keywords": [], + "keywords": [ + "Get Entity With Invalid Id" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/018_04.json b/doc/files/ContextInformation/Consumption/018_04.json index 2c1385c2..f2f433bf 100644 --- a/doc/files/ContextInformation/Consumption/018_04.json +++ b/doc/files/ContextInformation/Consumption/018_04.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_7", - "keywords": [], + "keywords": [ + "Delete Created Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/018_05.json b/doc/files/ContextInformation/Consumption/018_05.json index 0a4d7392..a9214289 100644 --- a/doc/files/ContextInformation/Consumption/018_05.json +++ b/doc/files/ContextInformation/Consumption/018_05.json @@ -6,6 +6,7 @@ "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_7", "keywords": [ + "Retrieve Entity In GeoJSON Representation", "Create Initial Entity", "Delete Created Entity" ], diff --git a/doc/files/ContextInformation/Consumption/018_06.json b/doc/files/ContextInformation/Consumption/018_06.json index 5e3077bf..f4443890 100644 --- a/doc/files/ContextInformation/Consumption/018_06.json +++ b/doc/files/ContextInformation/Consumption/018_06.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_5", - "keywords": [], + "keywords": [ + "Review JSON-LD Resolution When retrieving an entity", + "Setup Initial Entity", + "Delete Created Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/020_03.json b/doc/files/ContextInformation/Consumption/020_03.json index ed4f98dc..34a1228e 100644 --- a/doc/files/ContextInformation/Consumption/020_03.json +++ b/doc/files/ContextInformation/Consumption/020_03.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_3", - "keywords": [], + "keywords": [ + "Create Temporal Entity", + "Delete Initial Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n and an attribute with an id set to ${atrId}\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/020_04.json b/doc/files/ContextInformation/Consumption/020_04.json index 8bf0283e..01886e22 100644 --- a/doc/files/ContextInformation/Consumption/020_04.json +++ b/doc/files/ContextInformation/Consumption/020_04.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_3", - "keywords": [], + "keywords": [ + "Retrieve the temporal evolution of an entity matching the given NGSI-LD temporal query", + "Create Temporal Entity", + "Delete Initial Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n and an attribute with an id set to ${atrId}\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/020_05.json b/doc/files/ContextInformation/Consumption/020_05.json index 1c9c8601..1b70c051 100644 --- a/doc/files/ContextInformation/Consumption/020_05.json +++ b/doc/files/ContextInformation/Consumption/020_05.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_3", - "keywords": [], + "keywords": [ + "Retrieve the temporal evolution of the last N instances of entity attributes", + "Create Temporal Entity", + "Delete Initial Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n and an attribute with an id set to ${atrId}\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/020_09.json b/doc/files/ContextInformation/Consumption/020_09.json index aa5e2355..50587ad0 100644 --- a/doc/files/ContextInformation/Consumption/020_09.json +++ b/doc/files/ContextInformation/Consumption/020_09.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_3", - "keywords": [], + "keywords": [ + "Retrieve the temporal evolution of an entity with an invalid request content", + "Create Temporal Entity", + "Delete Initial Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n and an attribute with an id set to ${atrId}\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/021_01.json b/doc/files/ContextInformation/Consumption/021_01.json index c05c5547..40990465 100644 --- a/doc/files/ContextInformation/Consumption/021_01.json +++ b/doc/files/ContextInformation/Consumption/021_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_4", - "keywords": [], + "keywords": [ + "Query the temporal evolution of entities", + "Setup Initial Entities", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n and containing a list of entities\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/021_09.json b/doc/files/ContextInformation/Consumption/021_09.json index 15397ff1..f0904018 100644 --- a/doc/files/ContextInformation/Consumption/021_09.json +++ b/doc/files/ContextInformation/Consumption/021_09.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_4", - "keywords": [], + "keywords": [ + "Query the temporal evolution of entities matching the given NGSI-LD geo-query", + "Setup Initial Temporal Entities", + "Delete Initial Temporal Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an a list of Temporal Entities \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/021_10.json b/doc/files/ContextInformation/Consumption/021_10.json index 922a1c38..1f03a1b5 100644 --- a/doc/files/ContextInformation/Consumption/021_10.json +++ b/doc/files/ContextInformation/Consumption/021_10.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_4", - "keywords": [], + "keywords": [ + "Create Initial Context Source Registration and Mock Server", + "Delete Initial Context Source Registration and Mock Server" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing a Context Source Registration of a context source (CS1) \n providing temporal information of two entities of type Building between 2020-08-01T22:07:00Z and 2021-08-01T21:07:00Z\n and CS1 containing two temporal entities of type Building and temporal evolution of those entities in the mentioned interval.\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/021_11.json b/doc/files/ContextInformation/Consumption/021_11.json index b13757a8..eaca8c52 100644 --- a/doc/files/ContextInformation/Consumption/021_11.json +++ b/doc/files/ContextInformation/Consumption/021_11.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_4", - "keywords": [], + "keywords": [ + "Query the temporal evolution of entities with a limit to the number of entities to be retrieved", + "Setup Initial Temporal Entities", + "Delete Initial Temporal Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an a list of Temporal Entities \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/021_13.json b/doc/files/ContextInformation/Consumption/021_13.json index 9123eb14..39175c52 100644 --- a/doc/files/ContextInformation/Consumption/021_13.json +++ b/doc/files/ContextInformation/Consumption/021_13.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_4", - "keywords": [], + "keywords": [ + "Query the temporal evolution of entities using the entityOperations method", + "Setup Initial Temporal Entities", + "Delete Initial Temporal Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an a list of Temporal Entities \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/022_01.json b/doc/files/ContextInformation/Consumption/022_01.json index 62cde431..56246dee 100644 --- a/doc/files/ContextInformation/Consumption/022_01.json +++ b/doc/files/ContextInformation/Consumption/022_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_5", - "keywords": [], + "keywords": [ + "Retrieve Available Entity Types", + "Setup Initial Entities", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n and containing a list of entities\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/023_01.json b/doc/files/ContextInformation/Consumption/023_01.json index 80cca411..441518b8 100644 --- a/doc/files/ContextInformation/Consumption/023_01.json +++ b/doc/files/ContextInformation/Consumption/023_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_6", - "keywords": [], + "keywords": [ + "Retrieve Details Of Available Entity Types", + "Setup Initial Entities", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n and containing a list of entities\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/025_01.json b/doc/files/ContextInformation/Consumption/025_01.json index 825e469e..689a6980 100644 --- a/doc/files/ContextInformation/Consumption/025_01.json +++ b/doc/files/ContextInformation/Consumption/025_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_8", - "keywords": [], + "keywords": [ + "Retrieve Available Attributes", + "Setup Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Consumption/026_01.json b/doc/files/ContextInformation/Consumption/026_01.json index d94cc0c3..96bdf03a 100644 --- a/doc/files/ContextInformation/Consumption/026_01.json +++ b/doc/files/ContextInformation/Consumption/026_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_7_9", - "keywords": [], + "keywords": [ + "Retrieve Details Of Available Attributes", + "Setup Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/001_01.json b/doc/files/ContextInformation/Provision/001_01.json index 3abb22a9..ae3f33db 100644 --- a/doc/files/ContextInformation/Provision/001_01.json +++ b/doc/files/ContextInformation/Provision/001_01.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_1", - "keywords": [], + "keywords": [ + "Create Entity Scenarios", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/001_02.json b/doc/files/ContextInformation/Provision/001_02.json index cc166c74..cb3fc28b 100644 --- a/doc/files/ContextInformation/Provision/001_02.json +++ b/doc/files/ContextInformation/Provision/001_02.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_1", - "keywords": [], + "keywords": [ + "Create Entity With Invalid Request Scenarios" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/001_04.json b/doc/files/ContextInformation/Provision/001_04.json index 5b664193..a15de64b 100644 --- a/doc/files/ContextInformation/Provision/001_04.json +++ b/doc/files/ContextInformation/Provision/001_04.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_5", - "keywords": [], + "keywords": [ + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/001_05.json b/doc/files/ContextInformation/Provision/001_05.json index 256221ec..ac066491 100644 --- a/doc/files/ContextInformation/Provision/001_05.json +++ b/doc/files/ContextInformation/Provision/001_05.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_5", - "keywords": [], + "keywords": [ + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/001_07.json b/doc/files/ContextInformation/Provision/001_07.json index 96278f09..70365280 100644 --- a/doc/files/ContextInformation/Provision/001_07.json +++ b/doc/files/ContextInformation/Provision/001_07.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_5", - "keywords": [], + "keywords": [ + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/002_02.json b/doc/files/ContextInformation/Provision/002_02.json index b09439d2..1d180f7b 100644 --- a/doc/files/ContextInformation/Provision/002_02.json +++ b/doc/files/ContextInformation/Provision/002_02.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_6", - "keywords": [], + "keywords": [ + "Delete Entity Scenarios" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/003_01.json b/doc/files/ContextInformation/Provision/003_01.json index 62bfec35..894d7b81 100644 --- a/doc/files/ContextInformation/Provision/003_01.json +++ b/doc/files/ContextInformation/Provision/003_01.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_7", - "keywords": [], + "keywords": [ + "Batch Create Entity Scenarios", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/003_03.json b/doc/files/ContextInformation/Provision/003_03.json index 3b29aa0e..fb10110b 100644 --- a/doc/files/ContextInformation/Provision/003_03.json +++ b/doc/files/ContextInformation/Provision/003_03.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_7", - "keywords": [], + "keywords": [ + "Create Batch Entity With Invalid Request Scenarios" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/003_04.json b/doc/files/ContextInformation/Provision/003_04.json index 6a1062a9..bd57e633 100644 --- a/doc/files/ContextInformation/Provision/003_04.json +++ b/doc/files/ContextInformation/Provision/003_04.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_5", - "keywords": [], + "keywords": [ + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/003_05.json b/doc/files/ContextInformation/Provision/003_05.json index dbe38f61..f58bd342 100644 --- a/doc/files/ContextInformation/Provision/003_05.json +++ b/doc/files/ContextInformation/Provision/003_05.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_5", - "keywords": [], + "keywords": [ + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/003_07.json b/doc/files/ContextInformation/Provision/003_07.json index 71e53ac4..71f78cf9 100644 --- a/doc/files/ContextInformation/Provision/003_07.json +++ b/doc/files/ContextInformation/Provision/003_07.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_5", - "keywords": [], + "keywords": [ + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/004_01.json b/doc/files/ContextInformation/Provision/004_01.json index ad9eaa23..6e13f445 100644 --- a/doc/files/ContextInformation/Provision/004_01.json +++ b/doc/files/ContextInformation/Provision/004_01.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_8", - "keywords": [], + "keywords": [ + "Batch Upsert Entity Scenarios", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/004_02.json b/doc/files/ContextInformation/Provision/004_02.json index 545c6484..5383a3e4 100644 --- a/doc/files/ContextInformation/Provision/004_02.json +++ b/doc/files/ContextInformation/Provision/004_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_8", - "keywords": [], + "keywords": [ + "Batch Upsert Non-existing And Existing Entities Scenarios", + "Setup Initial Entities", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/004_03.json b/doc/files/ContextInformation/Provision/004_03.json index c3b2ba6a..e3a0028c 100644 --- a/doc/files/ContextInformation/Provision/004_03.json +++ b/doc/files/ContextInformation/Provision/004_03.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_8", - "keywords": [], + "keywords": [ + "Batch Upsert Existing Entities Scenarios", + "Setup Initial Entities", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n and containing a list of entities\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/004_04.json b/doc/files/ContextInformation/Provision/004_04.json index 8ddb4413..70f095cf 100644 --- a/doc/files/ContextInformation/Provision/004_04.json +++ b/doc/files/ContextInformation/Provision/004_04.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_8", - "keywords": [], + "keywords": [ + "Batch Upsert Entities With Update Option Scenarios", + "Setup Initial Entity", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/004_05.json b/doc/files/ContextInformation/Provision/004_05.json index 2b7aa4e5..d9e269ce 100644 --- a/doc/files/ContextInformation/Provision/004_05.json +++ b/doc/files/ContextInformation/Provision/004_05.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_8", - "keywords": [], + "keywords": [ + "Delete Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/004_06.json b/doc/files/ContextInformation/Provision/004_06.json index 5fc8e198..ba6ce71e 100644 --- a/doc/files/ContextInformation/Provision/004_06.json +++ b/doc/files/ContextInformation/Provision/004_06.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_8", - "keywords": [], + "keywords": [ + "Batch Upsert Entity With Invalid Request Scenarios" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/005_01.json b/doc/files/ContextInformation/Provision/005_01.json index ca5d74d8..5eb0a7a2 100644 --- a/doc/files/ContextInformation/Provision/005_01.json +++ b/doc/files/ContextInformation/Provision/005_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_9", - "keywords": [], + "keywords": [ + "Batch Update Entity Scenarios", + "Setup Initial Entities", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n and containing a list of entities\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/005_02.json b/doc/files/ContextInformation/Provision/005_02.json index 57e8775c..12106f8b 100644 --- a/doc/files/ContextInformation/Provision/005_02.json +++ b/doc/files/ContextInformation/Provision/005_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_9", - "keywords": [], + "keywords": [ + "Batch Update Entity With NoOverwrite Option Scenarios", + "Setup Initial Entities", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n and containing a list of entities\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/005_04.json b/doc/files/ContextInformation/Provision/005_04.json index db986616..12be9209 100644 --- a/doc/files/ContextInformation/Provision/005_04.json +++ b/doc/files/ContextInformation/Provision/005_04.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_9", - "keywords": [], + "keywords": [ + "Batch Update Entity With Invalid Request Scenarios" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ @@ -43,8 +45,8 @@ } ], "permutations": [ - "when", - "then" + "then", + "when" ], "robotpath": "ContextInformation/Provision/BatchEntities/UpdateBatchOfEntities", "robotfile": "005_04" diff --git a/doc/files/ContextInformation/Provision/006_01.json b/doc/files/ContextInformation/Provision/006_01.json index 75e9fd5d..9687c6ec 100644 --- a/doc/files/ContextInformation/Provision/006_01.json +++ b/doc/files/ContextInformation/Provision/006_01.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_10", - "keywords": [], + "keywords": [ + "Setup Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n and containing a list of entities\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/006_02.json b/doc/files/ContextInformation/Provision/006_02.json index b43c0b51..271d3788 100644 --- a/doc/files/ContextInformation/Provision/006_02.json +++ b/doc/files/ContextInformation/Provision/006_02.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_10", - "keywords": [], + "keywords": [ + "Setup Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/006_03.json b/doc/files/ContextInformation/Provision/006_03.json index 7c16cd7c..d7d3ba19 100644 --- a/doc/files/ContextInformation/Provision/006_03.json +++ b/doc/files/ContextInformation/Provision/006_03.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_10", - "keywords": [], + "keywords": [ + "Batch Delete Entity With Invalid Request Scenarios" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/007_01.json b/doc/files/ContextInformation/Provision/007_01.json index 6f38a5fa..b35f5316 100644 --- a/doc/files/ContextInformation/Provision/007_01.json +++ b/doc/files/ContextInformation/Provision/007_01.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_11", - "keywords": [], + "keywords": [ + "Create Temporal Entity", + "Delete Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/007_02.json b/doc/files/ContextInformation/Provision/007_02.json index 4756eb1c..aad0ae7c 100644 --- a/doc/files/ContextInformation/Provision/007_02.json +++ b/doc/files/ContextInformation/Provision/007_02.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_11", - "keywords": [], + "keywords": [ + "Create Temporal Entity From File" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/007_03.json b/doc/files/ContextInformation/Provision/007_03.json index 784d6c03..acb58838 100644 --- a/doc/files/ContextInformation/Provision/007_03.json +++ b/doc/files/ContextInformation/Provision/007_03.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_11", - "keywords": [], + "keywords": [ + "Create Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/009_01.json b/doc/files/ContextInformation/Provision/009_01.json index 398efebe..9ce1428f 100644 --- a/doc/files/ContextInformation/Provision/009_01.json +++ b/doc/files/ContextInformation/Provision/009_01.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_16", - "keywords": [], + "keywords": [ + "Create Initial Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/009_02.json b/doc/files/ContextInformation/Provision/009_02.json index 16520950..e968b68c 100644 --- a/doc/files/ContextInformation/Provision/009_02.json +++ b/doc/files/ContextInformation/Provision/009_02.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_16", - "keywords": [], + "keywords": [ + "Delete Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ @@ -43,8 +45,8 @@ } ], "permutations": [ - "when", - "then" + "then", + "when" ], "robotpath": "ContextInformation/Provision/TemporalEntity/DeleteTemporalRepresentationOfEntity", "robotfile": "009_02" diff --git a/doc/files/ContextInformation/Provision/010_01.json b/doc/files/ContextInformation/Provision/010_01.json index e87d84eb..8b042187 100644 --- a/doc/files/ContextInformation/Provision/010_01.json +++ b/doc/files/ContextInformation/Provision/010_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_3", - "keywords": [], + "keywords": [ + "Append Attributes Without Params", + "Create Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/010_02.json b/doc/files/ContextInformation/Provision/010_02.json index e33d782d..b52ce2fc 100644 --- a/doc/files/ContextInformation/Provision/010_02.json +++ b/doc/files/ContextInformation/Provision/010_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_3", - "keywords": [], + "keywords": [ + "Append Attributes", + "Create Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/010_04.json b/doc/files/ContextInformation/Provision/010_04.json index 23f35d05..d586ccca 100644 --- a/doc/files/ContextInformation/Provision/010_04.json +++ b/doc/files/ContextInformation/Provision/010_04.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_3", - "keywords": [], + "keywords": [ + "Append Attributes With Params", + "Create Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/010_05.json b/doc/files/ContextInformation/Provision/010_05.json index 342e2574..9f5502f4 100644 --- a/doc/files/ContextInformation/Provision/010_05.json +++ b/doc/files/ContextInformation/Provision/010_05.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_3", - "keywords": [], + "keywords": [ + "Create Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/011_01.json b/doc/files/ContextInformation/Provision/011_01.json index be00e166..4d49483d 100644 --- a/doc/files/ContextInformation/Provision/011_01.json +++ b/doc/files/ContextInformation/Provision/011_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_2", - "keywords": [], + "keywords": [ + "Update Attributes", + "Delete Initial Entities", + "Initialize Test" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/011_02.json b/doc/files/ContextInformation/Provision/011_02.json index 3b397700..194a07ae 100644 --- a/doc/files/ContextInformation/Provision/011_02.json +++ b/doc/files/ContextInformation/Provision/011_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_2", - "keywords": [], + "keywords": [ + "Update Attributes", + "Initialize Environment", + "Delete Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/011_04.json b/doc/files/ContextInformation/Provision/011_04.json index c4722c8c..45c677f5 100644 --- a/doc/files/ContextInformation/Provision/011_04.json +++ b/doc/files/ContextInformation/Provision/011_04.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_2", - "keywords": [], + "keywords": [ + "Update entity attributes with invalid entity fragments", + "Initialize Environment" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/012_01.json b/doc/files/ContextInformation/Provision/012_01.json index 214c4284..0cef4a7e 100644 --- a/doc/files/ContextInformation/Provision/012_01.json +++ b/doc/files/ContextInformation/Provision/012_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_4", - "keywords": [], + "keywords": [ + "Update Attributes", + "Initiate Test Case", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n and an attribute with an id set to ${atrId}\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/012_02.json b/doc/files/ContextInformation/Provision/012_02.json index 39c1e02f..bfa02068 100644 --- a/doc/files/ContextInformation/Provision/012_02.json +++ b/doc/files/ContextInformation/Provision/012_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_4", - "keywords": [], + "keywords": [ + "Update Attributes", + "Setup Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/012_03.json b/doc/files/ContextInformation/Provision/012_03.json index d34e2f83..3fdf01b4 100644 --- a/doc/files/ContextInformation/Provision/012_03.json +++ b/doc/files/ContextInformation/Provision/012_03.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_4", - "keywords": [], + "keywords": [ + "Partial Update Attributes", + "Create Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/013_01.json b/doc/files/ContextInformation/Provision/013_01.json index fa912c9c..c6aed518 100644 --- a/doc/files/ContextInformation/Provision/013_01.json +++ b/doc/files/ContextInformation/Provision/013_01.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_5", - "keywords": [], + "keywords": [ + "Delete Attributes", + "Delete Initial Entities" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/013_02.json b/doc/files/ContextInformation/Provision/013_02.json index 3636c1f6..5bd57eb8 100644 --- a/doc/files/ContextInformation/Provision/013_02.json +++ b/doc/files/ContextInformation/Provision/013_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_5", - "keywords": [], + "keywords": [ + "Delete Attributes", + "Create Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/013_03.json b/doc/files/ContextInformation/Provision/013_03.json index cf0984c0..f356d197 100644 --- a/doc/files/ContextInformation/Provision/013_03.json +++ b/doc/files/ContextInformation/Provision/013_03.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_5", - "keywords": [], + "keywords": [ + "Delete Attributes", + "Setup Initial Entity", + "Delete Initial Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Entity ${entity} \n with an id set to ${entityId} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/014_02.json b/doc/files/ContextInformation/Provision/014_02.json index 82b0c7a0..d87206f9 100644 --- a/doc/files/ContextInformation/Provision/014_02.json +++ b/doc/files/ContextInformation/Provision/014_02.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_12", - "keywords": [], + "keywords": [ + "Add Attribute To Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/014_04.json b/doc/files/ContextInformation/Provision/014_04.json index bb7f5ced..531d1993 100644 --- a/doc/files/ContextInformation/Provision/014_04.json +++ b/doc/files/ContextInformation/Provision/014_04.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_12", - "keywords": [], + "keywords": [ + "Add an Attribute To a Temporal Entity From File", + "Initialize Test Case" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/015_01.json b/doc/files/ContextInformation/Provision/015_01.json index 7596620f..f22ca6fb 100644 --- a/doc/files/ContextInformation/Provision/015_01.json +++ b/doc/files/ContextInformation/Provision/015_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_13", - "keywords": [], + "keywords": [ + "Delete Attribute From A Temporal Entity", + "Initialize Setup", + "Delete Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/015_02.json b/doc/files/ContextInformation/Provision/015_02.json index 10c3eb79..8f13cfb2 100644 --- a/doc/files/ContextInformation/Provision/015_02.json +++ b/doc/files/ContextInformation/Provision/015_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_13", - "keywords": [], + "keywords": [ + "Delete attribute from temporal entity with unknow entity/attribute id", + "Create Temporal Entity", + "Delete Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n and an attribute with an id set to ${atrId}\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/015_03.json b/doc/files/ContextInformation/Provision/015_03.json index d013e2bd..0c1348ac 100644 --- a/doc/files/ContextInformation/Provision/015_03.json +++ b/doc/files/ContextInformation/Provision/015_03.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_13", - "keywords": [], + "keywords": [ + "Delete An Attribute", + "Create Id", + "Delete Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/016_02.json b/doc/files/ContextInformation/Provision/016_02.json index c9740ac1..afbfea92 100644 --- a/doc/files/ContextInformation/Provision/016_02.json +++ b/doc/files/ContextInformation/Provision/016_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_14", - "keywords": [], + "keywords": [ + "Modify Attribute Instance Temporal Entity", + "Create Id", + "Delete Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/016_03.json b/doc/files/ContextInformation/Provision/016_03.json index d516bf5c..7295217a 100644 --- a/doc/files/ContextInformation/Provision/016_03.json +++ b/doc/files/ContextInformation/Provision/016_03.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_14", - "keywords": [], + "keywords": [ + "Modify Attribute Instance Temporal Entity", + "Create Id", + "Delete Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/017_02.json b/doc/files/ContextInformation/Provision/017_02.json index 7c64617c..07eb33a7 100644 --- a/doc/files/ContextInformation/Provision/017_02.json +++ b/doc/files/ContextInformation/Provision/017_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_15", - "keywords": [], + "keywords": [ + "Delete attribute instance", + "Create Temporal Entity", + "Delete Temporal Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n and an attribute with an id set to ${atrId}\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Provision/017_03.json b/doc/files/ContextInformation/Provision/017_03.json index 795f6b22..f4beadac 100644 --- a/doc/files/ContextInformation/Provision/017_03.json +++ b/doc/files/ContextInformation/Provision/017_03.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_6_15", - "keywords": [], + "keywords": [ + "Delete An Attribute Instance", + "Create Id", + "Delete Intitial Temporal Representation Of Entity" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Temporal Entity ${entity} \n with an id set to ${temporal_entity_representation_id} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Subscription/028_02.json b/doc/files/ContextInformation/Subscription/028_02.json index 67385877..4e6d5ea4 100644 --- a/doc/files/ContextInformation/Subscription/028_02.json +++ b/doc/files/ContextInformation/Subscription/028_02.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_1", - "keywords": [], + "keywords": [ + "Create Subscription With Invalid Request" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Subscription/028_03.json b/doc/files/ContextInformation/Subscription/028_03.json index 5d78e548..4891b3fb 100644 --- a/doc/files/ContextInformation/Subscription/028_03.json +++ b/doc/files/ContextInformation/Subscription/028_03.json @@ -6,6 +6,7 @@ "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_1", "keywords": [ + "Create Subscription With Invalid/Empty Id", "Delete Initial Subscriptions" ], "teardown": "Delete Initial Subscriptions", diff --git a/doc/files/ContextInformation/Subscription/029_01.json b/doc/files/ContextInformation/Subscription/029_01.json index 7df9d7b7..8c26e079 100644 --- a/doc/files/ContextInformation/Subscription/029_01.json +++ b/doc/files/ContextInformation/Subscription/029_01.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_2", - "keywords": [], + "keywords": [ + "Update Subscription With Non present Or Invalid Id" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Subscription/029_07.json b/doc/files/ContextInformation/Subscription/029_07.json index 3c429666..6a08d578 100644 --- a/doc/files/ContextInformation/Subscription/029_07.json +++ b/doc/files/ContextInformation/Subscription/029_07.json @@ -6,6 +6,7 @@ "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_2", "keywords": [ + "Activate Paused Subscription With isActive Member", "Setup Initial Subscriptions", "Delete Initial Subscriptions" ], diff --git a/doc/files/ContextInformation/Subscription/029_08.json b/doc/files/ContextInformation/Subscription/029_08.json index 6e5d90e5..580d4fcf 100644 --- a/doc/files/ContextInformation/Subscription/029_08.json +++ b/doc/files/ContextInformation/Subscription/029_08.json @@ -6,6 +6,7 @@ "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_2", "keywords": [ + "Activate Paused Subscription With isActive And ExpiresAt Members", "Setup Initial Subscriptions", "Delete Initial Subscriptions" ], diff --git a/doc/files/ContextInformation/Subscription/030_01.json b/doc/files/ContextInformation/Subscription/030_01.json index 070fccfe..bc24b221 100644 --- a/doc/files/ContextInformation/Subscription/030_01.json +++ b/doc/files/ContextInformation/Subscription/030_01.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_3", - "keywords": [], + "keywords": [ + "Retrieve Subscription With Invalid Id" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Subscription/031_02.json b/doc/files/ContextInformation/Subscription/031_02.json index a016811e..48803e36 100644 --- a/doc/files/ContextInformation/Subscription/031_02.json +++ b/doc/files/ContextInformation/Subscription/031_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_4", - "keywords": [], + "keywords": [ + "Query Subscriptions With Limit And Page Parameters", + "Setup Initial Subscriptions", + "Delete Initial Subscriptions" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing an initial Subscription ${subscription} \n with an id set to ${subscription_id} \n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Subscription/032_01.json b/doc/files/ContextInformation/Subscription/032_01.json index 442f3277..6d4787d7 100644 --- a/doc/files/ContextInformation/Subscription/032_01.json +++ b/doc/files/ContextInformation/Subscription/032_01.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_5", - "keywords": [], + "keywords": [ + "Delete Subscription With Non present Or Invalid Id" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextInformation/Subscription/046_01.json b/doc/files/ContextInformation/Subscription/046_01.json index b45635aa..63c2a98c 100644 --- a/doc/files/ContextInformation/Subscription/046_01.json +++ b/doc/files/ContextInformation/Subscription/046_01.json @@ -7,7 +7,11 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Test", - "After Test" + "Add Initial Entity", + "Setup Initial Subscriptions", + "After Test", + "Delete Initial Subscriptions", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextInformation/Subscription/046_02.json b/doc/files/ContextInformation/Subscription/046_02.json index d332377b..4d38100b 100644 --- a/doc/files/ContextInformation/Subscription/046_02.json +++ b/doc/files/ContextInformation/Subscription/046_02.json @@ -7,7 +7,10 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Test", - "After Test" + "Setup Initial Subscriptions", + "After Test", + "Delete Initial Subscriptions", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextInformation/Subscription/046_03.json b/doc/files/ContextInformation/Subscription/046_03.json index bbd4bc4e..af2e1cec 100644 --- a/doc/files/ContextInformation/Subscription/046_03.json +++ b/doc/files/ContextInformation/Subscription/046_03.json @@ -7,7 +7,11 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Test", - "After Test" + "Setup Initial Subscriptions", + "After Test", + "Delete Initial Subscriptions", + "Add Initial Entity", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextInformation/Subscription/046_04.json b/doc/files/ContextInformation/Subscription/046_04.json index 9947c7af..f51309a4 100644 --- a/doc/files/ContextInformation/Subscription/046_04.json +++ b/doc/files/ContextInformation/Subscription/046_04.json @@ -7,7 +7,10 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Test", - "After Test" + "Setup Initial Subscriptions", + "After Test", + "Delete Initial Subscriptions", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextInformation/Subscription/046_05.json b/doc/files/ContextInformation/Subscription/046_05.json index 52cd374c..0b1a30fa 100644 --- a/doc/files/ContextInformation/Subscription/046_05.json +++ b/doc/files/ContextInformation/Subscription/046_05.json @@ -7,7 +7,10 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Test", - "After Test" + "Setup Initial Subscriptions", + "After Test", + "Delete Initial Subscriptions", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextInformation/Subscription/046_07.json b/doc/files/ContextInformation/Subscription/046_07.json index 297f9225..ef588be6 100644 --- a/doc/files/ContextInformation/Subscription/046_07.json +++ b/doc/files/ContextInformation/Subscription/046_07.json @@ -7,6 +7,8 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Suite", + "Setup Initial Subscriptions", + "After Test", "After Suite" ], "teardown": "After Suite", diff --git a/doc/files/ContextInformation/Subscription/046_08.json b/doc/files/ContextInformation/Subscription/046_08.json index 06213e44..71e9f8d4 100644 --- a/doc/files/ContextInformation/Subscription/046_08.json +++ b/doc/files/ContextInformation/Subscription/046_08.json @@ -7,6 +7,8 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Suite", + "Setup Initial Subscriptions", + "After Test", "After Suite" ], "teardown": "After Suite", diff --git a/doc/files/ContextInformation/Subscription/046_09.json b/doc/files/ContextInformation/Subscription/046_09.json index f151279e..dda1bb2d 100644 --- a/doc/files/ContextInformation/Subscription/046_09.json +++ b/doc/files/ContextInformation/Subscription/046_09.json @@ -7,7 +7,10 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Test", - "After Test" + "Setup Initial Subscriptions", + "After Test", + "Delete Initial Subscriptions", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextInformation/Subscription/046_10.json b/doc/files/ContextInformation/Subscription/046_10.json index 38c079e3..7f94d577 100644 --- a/doc/files/ContextInformation/Subscription/046_10.json +++ b/doc/files/ContextInformation/Subscription/046_10.json @@ -7,7 +7,10 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Test", - "After Test" + "Setup Initial Subscriptions", + "After Test", + "Delete Initial Subscriptions", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextInformation/Subscription/046_11.json b/doc/files/ContextInformation/Subscription/046_11.json index f279fb73..5cf674a1 100644 --- a/doc/files/ContextInformation/Subscription/046_11.json +++ b/doc/files/ContextInformation/Subscription/046_11.json @@ -7,7 +7,11 @@ "pics_selection": "PICS_5_8_6", "keywords": [ "Before Test", - "After Test" + "Setup Initial Subscriptions", + "Add Initial Entity", + "After Test", + "Delete Initial Subscriptions", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextInformation/Subscription/046_12.json b/doc/files/ContextInformation/Subscription/046_12.json index 4649f01a..324c7945 100644 --- a/doc/files/ContextInformation/Subscription/046_12.json +++ b/doc/files/ContextInformation/Subscription/046_12.json @@ -6,8 +6,12 @@ "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_6", "keywords": [ + "Setup Initial Subscriptions", + "Delete Initial Subscriptions", "Before Test", - "After Test" + "After Test", + "Add Initial Entity", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextInformation/Subscription/046_13.json b/doc/files/ContextInformation/Subscription/046_13.json index 9bed3792..785d6b2b 100644 --- a/doc/files/ContextInformation/Subscription/046_13.json +++ b/doc/files/ContextInformation/Subscription/046_13.json @@ -6,6 +6,10 @@ "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_6", "keywords": [ + "Setup Initial Subscription", + "Delete Initial Subscription", + "Add Initial Entity", + "Delete Initial Entity", "Before Test", "After Test" ], diff --git a/doc/files/ContextInformation/Subscription/046_14.json b/doc/files/ContextInformation/Subscription/046_14.json index d2c1783c..fd449970 100644 --- a/doc/files/ContextInformation/Subscription/046_14.json +++ b/doc/files/ContextInformation/Subscription/046_14.json @@ -6,8 +6,12 @@ "parent_release": "v1.3.1", "pics_selection": "PICS_5_8_6", "keywords": [ + "Setup Initial Subscriptions", + "Delete Initial Subscriptions", "Before Test", - "After Test" + "After Test", + "Add Initial Entity", + "Delete Initial Entity" ], "teardown": "After Test", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/doc/files/ContextSource/Discovery/036_01.json b/doc/files/ContextSource/Discovery/036_01.json index c48b2b5a..10bdf526 100644 --- a/doc/files/ContextSource/Discovery/036_01.json +++ b/doc/files/ContextSource/Discovery/036_01.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_10_1", - "keywords": [], + "keywords": [ + "Retrieve Context Source Registration With An Invalid Id" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Discovery/036_05.json b/doc/files/ContextSource/Discovery/036_05.json index e8f342b8..8bb976c1 100644 --- a/doc/files/ContextSource/Discovery/036_05.json +++ b/doc/files/ContextSource/Discovery/036_05.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_5", - "keywords": [], + "keywords": [ + "Review JSON-LD resolution when retrieving a context source registration", + "Setup Initial Context Source Registration", + "Delete Created Context Source Registration" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Discovery/037_01.json b/doc/files/ContextSource/Discovery/037_01.json index 4d8e4d53..18f0d823 100644 --- a/doc/files/ContextSource/Discovery/037_01.json +++ b/doc/files/ContextSource/Discovery/037_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_10_2", - "keywords": [], + "keywords": [ + "Query A Context Source Registration", + "Setup Initial Context Source Registrations", + "Delete Created Context Source Registrations" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a list of Context Source Registrations (CSRs) providing latest information about some entities\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Discovery/037_03.json b/doc/files/ContextSource/Discovery/037_03.json index 75a7830f..2c69eb04 100644 --- a/doc/files/ContextSource/Discovery/037_03.json +++ b/doc/files/ContextSource/Discovery/037_03.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_10_2", - "keywords": [], + "keywords": [ + "Query Context Source Registration With Invalid Query Param" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Discovery/037_05.json b/doc/files/ContextSource/Discovery/037_05.json index fd37f26b..39f253e4 100644 --- a/doc/files/ContextSource/Discovery/037_05.json +++ b/doc/files/ContextSource/Discovery/037_05.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_10_2", - "keywords": [], + "keywords": [ + "Query Context Source Registration Matching EntityInfo of RegistrationInfo", + "Delete Created Context Source Registration" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Discovery/037_06.json b/doc/files/ContextSource/Discovery/037_06.json index db192f06..be354984 100644 --- a/doc/files/ContextSource/Discovery/037_06.json +++ b/doc/files/ContextSource/Discovery/037_06.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_10_2", - "keywords": [], + "keywords": [ + "Query Context Source Registration Matching Properties And Relationships Of RegistrationInfo", + "Setup Initial Context Source Registration", + "Delete Created Context Source Registration" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Discovery/037_07.json b/doc/files/ContextSource/Discovery/037_07.json index 88fd6779..fa9ed461 100644 --- a/doc/files/ContextSource/Discovery/037_07.json +++ b/doc/files/ContextSource/Discovery/037_07.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_10_2", - "keywords": [], + "keywords": [ + "Query Context Source Registration Matching Geoquery", + "Setup Initial Context Source Registration", + "Delete Created Context Source Registration" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Discovery/037_09.json b/doc/files/ContextSource/Discovery/037_09.json index 2a7a7104..42d50248 100644 --- a/doc/files/ContextSource/Discovery/037_09.json +++ b/doc/files/ContextSource/Discovery/037_09.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_10_2", - "keywords": [], + "keywords": [ + "Query Context Source Registration Matching Temporal Query", + "Delete Created Context Source Registrations" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Discovery/037_10.json b/doc/files/ContextSource/Discovery/037_10.json index 0cb7f5ca..234494dc 100644 --- a/doc/files/ContextSource/Discovery/037_10.json +++ b/doc/files/ContextSource/Discovery/037_10.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_10_2", - "keywords": [], + "keywords": [ + "Query Context Source Registration With Query Params", + "Setup Initial Context Source Registrations", + "Delete Created Context Source Registrations" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a list of Context Source Registrations (CSRs) providing latest information about some entities\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Discovery/037_11.json b/doc/files/ContextSource/Discovery/037_11.json index 7edb7d5e..0fe705c9 100644 --- a/doc/files/ContextSource/Discovery/037_11.json +++ b/doc/files/ContextSource/Discovery/037_11.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_10_2", - "keywords": [], + "keywords": [ + "Query Context Source Registration With Limit And Offset Parameters", + "Setup Initial Context Source Registrations", + "Delete Created Context Source Registrations" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a list of Context Source Registrations (CSRs) providing latest information about some entities\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Registration/033_03.json b/doc/files/ContextSource/Registration/033_03.json index 5833d7e1..becde7a4 100644 --- a/doc/files/ContextSource/Registration/033_03.json +++ b/doc/files/ContextSource/Registration/033_03.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_9_2", - "keywords": [], + "keywords": [ + "Delete Created Context Source Registrations", + "Create New Context Source Registration" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Registration/033_10.json b/doc/files/ContextSource/Registration/033_10.json index ae9d5f5c..8399b16f 100644 --- a/doc/files/ContextSource/Registration/033_10.json +++ b/doc/files/ContextSource/Registration/033_10.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_6_3_5", - "keywords": [], + "keywords": [ + "Create Context Source With Invalid Content" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Registration/034_01.json b/doc/files/ContextSource/Registration/034_01.json index c0d0a772..2f925d76 100644 --- a/doc/files/ContextSource/Registration/034_01.json +++ b/doc/files/ContextSource/Registration/034_01.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_9_3", - "keywords": [], + "keywords": [ + "Update A Context Source", + "Delete Updated Context Source Registration", + "Initialize the Test Case" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Registration/034_02.json b/doc/files/ContextSource/Registration/034_02.json index 8147792d..3a882fd0 100644 --- a/doc/files/ContextSource/Registration/034_02.json +++ b/doc/files/ContextSource/Registration/034_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_9_3", - "keywords": [], + "keywords": [ + "Update A Context Source", + "Create Initial Context Source Registration", + "Delete Initial Context Source Registration" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Registration/034_04.json b/doc/files/ContextSource/Registration/034_04.json index 7e02e0b5..e7f36234 100644 --- a/doc/files/ContextSource/Registration/034_04.json +++ b/doc/files/ContextSource/Registration/034_04.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_9_3", - "keywords": [], + "keywords": [ + "Create Initial Context Source Registration", + "Delete Initial Context Source Registration" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Registration/034_05.json b/doc/files/ContextSource/Registration/034_05.json index 2edadfb9..96164acc 100644 --- a/doc/files/ContextSource/Registration/034_05.json +++ b/doc/files/ContextSource/Registration/034_05.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_9_3", - "keywords": [], + "keywords": [ + "Update A Context Source", + "Delete Updated Context Source Registration", + "Initialize the Test Case" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Registration/034_06.json b/doc/files/ContextSource/Registration/034_06.json index 7cd03b78..d316831c 100644 --- a/doc/files/ContextSource/Registration/034_06.json +++ b/doc/files/ContextSource/Registration/034_06.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_9_3", - "keywords": [], + "keywords": [ + "Update A Context Source", + "Create Initial Context Source Registration", + "Delete Initial Context Source Registration" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/Registration/035_02.json b/doc/files/ContextSource/Registration/035_02.json index cbec8856..dd43d171 100644 --- a/doc/files/ContextSource/Registration/035_02.json +++ b/doc/files/ContextSource/Registration/035_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_9_4", - "keywords": [], + "keywords": [ + "Delete A Context Source", + "Delete Created Context Source Registrations", + "Create Initial Context Source Registration" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT contains a Context Source Registration \n with id equal to ${context_source_registration_id}\n and payload set to ${context_source_registration_payload_file_path}\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/038_07.json b/doc/files/ContextSource/RegistrationSubscription/038_07.json index dde1a2c5..3685bc23 100644 --- a/doc/files/ContextSource/RegistrationSubscription/038_07.json +++ b/doc/files/ContextSource/RegistrationSubscription/038_07.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_2", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Initial Context Source Registration Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/038_08.json b/doc/files/ContextSource/RegistrationSubscription/038_08.json index 037ccaed..580e5feb 100644 --- a/doc/files/ContextSource/RegistrationSubscription/038_08.json +++ b/doc/files/ContextSource/RegistrationSubscription/038_08.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_2", - "keywords": [], + "keywords": [ + "Create Invalid Context Source Registration Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/039_01.json b/doc/files/ContextSource/RegistrationSubscription/039_01.json index 59fccbe1..dd2c24b2 100644 --- a/doc/files/ContextSource/RegistrationSubscription/039_01.json +++ b/doc/files/ContextSource/RegistrationSubscription/039_01.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_3", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscriptions", + "Delete Initial Context Source Registration Subscriptions" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a set of Context Source Registration Subscriptions (CSRSs)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/039_04.json b/doc/files/ContextSource/RegistrationSubscription/039_04.json index 78f3d36a..20eeb8b6 100644 --- a/doc/files/ContextSource/RegistrationSubscription/039_04.json +++ b/doc/files/ContextSource/RegistrationSubscription/039_04.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_3", - "keywords": [], + "keywords": [ + "Update Context Source Registration Subscription With Invalid Fragment", + "Setup Initial Context Source Registration Subscriptions", + "Delete Initial Context Source Registration Subscriptions" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a set of Context Source Registration Subscriptions (CSRSs)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/039_05.json b/doc/files/ContextSource/RegistrationSubscription/039_05.json index fb7b5736..1654e7c1 100644 --- a/doc/files/ContextSource/RegistrationSubscription/039_05.json +++ b/doc/files/ContextSource/RegistrationSubscription/039_05.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_3", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscriptions", + "Delete Initial Context Source Registration Subscriptions" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a set of Context Source Registration Subscriptions (CSRSs)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/040_01.json b/doc/files/ContextSource/RegistrationSubscription/040_01.json index 24590fa0..96cf6229 100644 --- a/doc/files/ContextSource/RegistrationSubscription/040_01.json +++ b/doc/files/ContextSource/RegistrationSubscription/040_01.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_4", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/041_01.json b/doc/files/ContextSource/RegistrationSubscription/041_01.json index c18b4d80..ae1c333b 100644 --- a/doc/files/ContextSource/RegistrationSubscription/041_01.json +++ b/doc/files/ContextSource/RegistrationSubscription/041_01.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_5", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscriptions", + "Delete Created Context Source Registration Subscriptions" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a set of Context Source Registration Subscriptions (CSRSs)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/041_02.json b/doc/files/ContextSource/RegistrationSubscription/041_02.json index a652f73d..2c2fd639 100644 --- a/doc/files/ContextSource/RegistrationSubscription/041_02.json +++ b/doc/files/ContextSource/RegistrationSubscription/041_02.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_5", - "keywords": [], + "keywords": [ + "Query Context Source Registration Subscriptions With Limit Parameter", + "Setup Initial Context Source Registration Subscriptions", + "Delete Created Context Source Registration Subscriptions" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a set of Context Source Registration Subscriptions (CSRSs)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/041_03.json b/doc/files/ContextSource/RegistrationSubscription/041_03.json index d3b63f7a..86ef3a3f 100644 --- a/doc/files/ContextSource/RegistrationSubscription/041_03.json +++ b/doc/files/ContextSource/RegistrationSubscription/041_03.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_5", - "keywords": [], + "keywords": [ + "Query Context Source Registration Subscriptions With Limit And Page Parameters", + "Setup Initial Context Source Registration Subscriptions", + "Delete Created Context Source Registration Subscriptions" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a set of Context Source Registration Subscriptions (CSRSs)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/041_04.json b/doc/files/ContextSource/RegistrationSubscription/041_04.json index 656a1916..6881f553 100644 --- a/doc/files/ContextSource/RegistrationSubscription/041_04.json +++ b/doc/files/ContextSource/RegistrationSubscription/041_04.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_5", - "keywords": [], + "keywords": [ + "Query Context Source Registration Subscriptions With Invalid Limit And Page Parameters" + ], "teardown": "None", "initial_condition": "with {\n the SUT containing an initial state\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/042_01.json b/doc/files/ContextSource/RegistrationSubscription/042_01.json index 01ab87db..969d588f 100644 --- a/doc/files/ContextSource/RegistrationSubscription/042_01.json +++ b/doc/files/ContextSource/RegistrationSubscription/042_01.json @@ -5,7 +5,9 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_6", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_02.json b/doc/files/ContextSource/RegistrationSubscription/047_02.json index 54128041..9dc469de 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_02.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_02.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Create Initial Context Source Registration and Context Source Registration Subscription", + "Delete Created Context Source Registration And Context Source Registration Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration (CSR1) providing latest information about some entities\n and the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_03.json b/doc/files/ContextSource/RegistrationSubscription/047_03.json index 5f9a411e..17c0f990 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_03.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_03.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_04.json b/doc/files/ContextSource/RegistrationSubscription/047_04.json index 3fe3ea31..75dc0a5d 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_04.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_04.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_05.json b/doc/files/ContextSource/RegistrationSubscription/047_05.json index 5dd4140e..3dc8423b 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_05.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_05.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_06.json b/doc/files/ContextSource/RegistrationSubscription/047_06.json index 4c5b3cc9..adc4aab7 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_06.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_06.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_07.json b/doc/files/ContextSource/RegistrationSubscription/047_07.json index 56815937..d2fd8e5f 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_07.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_07.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Do Not Receive cSourceNotification If Subscription Status Is Not Active", + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_08.json b/doc/files/ContextSource/RegistrationSubscription/047_08.json index ea59296b..d45c2ec4 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_08.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_08.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Create Initial Context Source Registration and Context Source Registration Subscription", + "Delete Created Context Source Registration And Context Source Registration Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration (CSR1) providing latest information about some entities\n and the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_10.json b/doc/files/ContextSource/RegistrationSubscription/047_10.json index 2b444a09..4e045b57 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_10.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_10.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_12.json b/doc/files/ContextSource/RegistrationSubscription/047_12.json index a5f73644..c803769b 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_12.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_12.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_13.json b/doc/files/ContextSource/RegistrationSubscription/047_13.json index 8a3fd2af..ce25aa3f 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_13.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_13.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_14.json b/doc/files/ContextSource/RegistrationSubscription/047_14.json index 33c7266a..ef061334 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_14.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_14.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_15.json b/doc/files/ContextSource/RegistrationSubscription/047_15.json index 88382cb7..aaa79e1e 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_15.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_15.json @@ -5,7 +5,10 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Setup Initial Context Source Registration Subscription", + "Delete Created Context Source Registration And Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/doc/files/ContextSource/RegistrationSubscription/047_16.json b/doc/files/ContextSource/RegistrationSubscription/047_16.json index a5dc97e0..763b945e 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_16.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_16.json @@ -5,7 +5,11 @@ "config_id": "", "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", - "keywords": [], + "keywords": [ + "Receive cSourceNotification For Newly Matching Context Source Registrations", + "Create Initial Context Source Registrations And Context Source Registration Subscription", + "Delete Created Context Source Registrations And Context Source Registration Subscription" + ], "teardown": "None", "initial_condition": "with {\n the SUT being in the \"initial state\" and\n the SUT containing a list of Context Source Registrations (CSRs) providing latest information about some entities\n and the SUT containing a Context Source Registration Subscription (CSRS1)\n}", "test_cases": [ diff --git a/requirements.txt b/requirements.txt index b98ebc40..7599dc9e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,4 @@ robotframework-requests==0.9.6 deepdiff==6.7.1 prettydiff==0.1.0 robotframework-httpctrl==0.3.1 -robotframework-tidy==4.6.0 +robotframework-tidy==4.9.0 -- GitLab From b17919471ebb6e9bd763521bc165c2680442f0b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20L=C3=B3pez=20Aguilar?= Date: Fri, 16 Feb 2024 11:31:14 +0100 Subject: [PATCH 03/12] Update CommonBehaviours tags --- .../VerifyGETWithoutAccept/045_01.robot | 8 ++++---- .../VerifyLdContextNotAvailable/043_01.robot | 10 +++++----- .../VerifyMergePatchJson/044_01.robot | 2 +- .../VerifyMergePatchJson/044_02.robot | 2 +- .../VerifyNotAcceptableMediaType/049_01.robot | 10 +++++----- .../VerifyNotAcceptableMediaType/049_02.robot | 6 +++--- .../VerifyUnsupportedMediaType/048_01.robot | 12 ++++++------ doc/files/CommonBehaviours/043_01.json | 11 ++++++++--- doc/files/CommonBehaviours/044_01.json | 1 + doc/files/CommonBehaviours/044_02.json | 1 + doc/files/CommonBehaviours/045_01.json | 8 ++++++-- doc/files/CommonBehaviours/048_01.json | 12 +++++++++--- doc/files/CommonBehaviours/049_01.json | 9 +++++++-- doc/files/CommonBehaviours/049_02.json | 7 +++++-- 14 files changed, 62 insertions(+), 37 deletions(-) diff --git a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyGETWithoutAccept/045_01.robot b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyGETWithoutAccept/045_01.robot index abd654da..04e4af9f 100644 --- a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyGETWithoutAccept/045_01.robot +++ b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyGETWithoutAccept/045_01.robot @@ -29,7 +29,7 @@ ${content_type}= application/json *** Test Cases *** 045_01_01 Endpoint /entities/{entityId} [Documentation] Verify that on a GET HTTP request if nothing is specified on the Accept header, "application/json" is assumed (/entities/{entityId}) - [Tags] e-query 6_3_4 + [Tags] e-query cb-get 6_3_4 ${id}= Generate Random Entity Id ${building_id_prefix} ${response}= Create Entity Selecting Content Type ... ${building_filename} @@ -47,7 +47,7 @@ ${content_type}= application/json 045_01_02 Endpoint /subscriptions/{subscriptionId} [Documentation] Verify that on a GET HTTP request if nothing is specified on the Accept header, "application/json" is assumed (/subscriptions/{subscriptionId}) - [Tags] sub-retrieve 6_3_4 + [Tags] sub-retrieve cb-get 6_3_4 ${id}= Generate Random Entity Id ${subscription_id_prefix} ${response}= Create Subscription ${id} ${subscription_filename} ${CONTENT_TYPE_LD_JSON} Check Response Status Code 201 ${response.status_code} @@ -61,7 +61,7 @@ ${content_type}= application/json 045_01_03 Endpoint /csourceRegistrations/ [Documentation] Verify that on a GET HTTP request if nothing is specified on the Accept header, "application/json" is assumed (/csourceRegistrations/) - [Tags] csr-query 6_3_4 + [Tags] csr-query cb-get 6_3_4 ${registration_id}= Generate Random Entity Id ${registration_id_prefix} ${payload}= Load JSON From File ${EXECDIR}/data/${registration_filename} ${updated_payload}= Update Value To JSON ${payload} $..id ${registration_id} @@ -79,7 +79,7 @@ ${content_type}= application/json 045_01_04 Endpoint /temporal/entities [Documentation] Verify that on a GET HTTP request if nothing is specified on the Accept header, "application/json" is assumed (/temporal/entities) - [Tags] te-query 6_3_4 + [Tags] te-query cb-get 6_3_4 ${temporal_entity_representation_id}= Generate Random Entity Id ${tea_id_prefix} ${response}= Create Or Update Temporal Representation Of Entity Selecting Content Type ... temporal_entity_representation_id=${temporal_entity_representation_id} diff --git a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyLdContextNotAvailable/043_01.robot b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyLdContextNotAvailable/043_01.robot index 14069952..44a8ff10 100644 --- a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyLdContextNotAvailable/043_01.robot +++ b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyLdContextNotAvailable/043_01.robot @@ -24,7 +24,7 @@ ${registration_filename}= csourceRegistrations/context-source-registration *** Test Cases *** 043_01_01 Create entity [Documentation] Verify receiving 503 – LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Create entity) - [Tags] e-create 5_2_2 + [Tags] e-create cb-ldcontext 5_2_2 ${entity_id}= Generate Random Entity Id ${building_id_prefix} ${response}= Create Entity Selecting Content Type ... ${building_filename} @@ -39,7 +39,7 @@ ${registration_filename}= csourceRegistrations/context-source-registration 043_01_02 Create subscription [Documentation] Verify receiving 503 – LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Create subscription) - [Tags] sub-create 5_2_2 + [Tags] sub-create cb-ldcontext 5_2_2 ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} ${response}= Create Subscription ${subscription_id} ${subscription_filename} ${CONTENT_TYPE_LD_JSON} Check Response Status Code ${expected_status_code} ${response.status_code} @@ -51,7 +51,7 @@ ${registration_filename}= csourceRegistrations/context-source-registration 043_01_03 Create Temporal Representation of Entities [Documentation] Verify receiving 503 – LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Create Temporal Representation of Entities) - [Tags] te-create 5_2_2 + [Tags] te-create cb-ldcontext 5_2_2 ${temporal_entity_representation_id}= Generate Random Entity Id ${tea_id_prefix} ${response}= Create Or Update Temporal Representation Of Entity Selecting Content Type ... temporal_entity_representation_id=${temporal_entity_representation_id} @@ -66,7 +66,7 @@ ${registration_filename}= csourceRegistrations/context-source-registration 043_01_04 Batch entity create [Documentation] Verify receiving 503 – LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Batch entity create) - [Tags] be-create 5_2_2 + [Tags] be-create cb-ldcontext 5_2_2 ${first_entity_id}= Generate Random Entity Id ${building_id_prefix} ${second_entity_id}= Generate Random Entity Id ${building_id_prefix} ${first_entity}= Load Entity ${building_filename} ${first_entity_id} @@ -83,7 +83,7 @@ ${registration_filename}= csourceRegistrations/context-source-registration 043_01_05 Create context source registration [Documentation] Verify receiving 503 – LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Create context source registration) - [Tags] csr-create 5_2_2 + [Tags] csr-create cb-ldcontext 5_2_2 ${registration_id}= Generate Random Entity Id ${registration_id_prefix} ${payload}= Load JSON From File ${EXECDIR}/data/${registration_filename} ${updated_payload}= Update Value To JSON ${payload} $..id ${registration_id} diff --git a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyMergePatchJson/044_01.robot b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyMergePatchJson/044_01.robot index 5ee38366..af2fbf78 100644 --- a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyMergePatchJson/044_01.robot +++ b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyMergePatchJson/044_01.robot @@ -19,7 +19,7 @@ ${attribute_id}= brandName *** Test Cases *** 044_01_01 endpoint /entities/{entityId}/attrs/{attrId} [Documentation] Verify that PATCH HTTP requests can be done with "application/merge-patch+json" as Content-Type - [Tags] ea-partial-update 6_3_4 + [Tags] ea-partial-update cb-mergepatch 6_3_4 ${response}= Partial Update Entity Attributes ... entityId=${entity_id} ... attributeId=${attribute_id} diff --git a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyMergePatchJson/044_02.robot b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyMergePatchJson/044_02.robot index 9dbb7183..a228f94b 100644 --- a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyMergePatchJson/044_02.robot +++ b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyMergePatchJson/044_02.robot @@ -19,7 +19,7 @@ ${subscription_fragment}= subscriptions/fragments/subscription-update-samp *** Test Cases *** 044_02_01 Endpoint /subscriptions/{subscriptionId} [Documentation] Verify that PATCH HTTP requests can be done with "application/merge-patch+json" as Content-Type - [Tags] sub-update 6_3_4 + [Tags] sub-update cb-mergepatch 6_3_4 ${response}= Update Subscription ... ${subscription_id} ... ${subscription_fragment} diff --git a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType/049_01.robot b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType/049_01.robot index 38654ea2..b835ad1c 100644 --- a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType/049_01.robot +++ b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType/049_01.robot @@ -21,7 +21,7 @@ ${subscription_id_prefix}= urn:ngsi-ld:Subscription: *** Test Cases *** 049_01_01 Endpoint get /entities/{entityId} [Documentation] Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the "Accept" header does not imply "application/json" nor "application/ld+json" (get /entities/{entityId}) - [Tags] e-query 6_3_4 + [Tags] e-query cb-noacceptable-medtype 6_3_4 ${entity_id}= Generate Random Entity Id ${building_id_prefix} ${response}= Query Entity ... id=${entity_id} @@ -31,7 +31,7 @@ ${subscription_id_prefix}= urn:ngsi-ld:Subscription: 049_01_02 Endpoint get /subscriptions/{subscriptionId} [Documentation] Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the "Accept" header does not imply "application/json" nor "application/ld+json" (get /subscriptions/{subscriptionId}) - [Tags] sub-retrieve 6_3_4 + [Tags] sub-retrieve cb-noacceptable-medtype 6_3_4 ${id}= Generate Random Entity Id ${subscription_id_prefix} ${response}= Retrieve Subscription ... id=${id} @@ -41,19 +41,19 @@ ${subscription_id_prefix}= urn:ngsi-ld:Subscription: 049_01_03 Endpoint get /csourceRegistrations/ [Documentation] Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the "Accept" header does not imply "application/json" nor "application/ld+json" (get /csourceRegistrations/) - [Tags] csr-query 6_3_4 + [Tags] csr-query cb-noacceptable-medtype 6_3_4 ${response}= Query Context Source Registrations With Return type=Building accept=${accept} Check Response Status Code ${status_code} ${response.status_code} 049_01_04 Endpoint get /csourceSubscriptions/ [Documentation] Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the "Accept" header does not imply "application/json" nor "application/ld+json" (get /csourceSubscriptions/) - [Tags] csrsub-query 6_3_4 + [Tags] csrsub-query cb-noacceptable-medtype 6_3_4 ${response}= Query Context Source Registration Subscriptions accept=${accept} Check Response Status Code ${status_code} ${response.status_code} 049_01_05 Endpoint get /temporal/entities [Documentation] Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the "Accept" header does not imply "application/json" nor "application/ld+json" (get /temporal/entities) - [Tags] te-query 6_3_4 + [Tags] te-query cb-noacceptable-medtype 6_3_4 ${entity_types_to_be_retrieved}= Catenate SEPARATOR=, Vehicle ${response}= Query Temporal Representation Of Entities ... entity_types=${entity_types_to_be_retrieved} diff --git a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType/049_02.robot b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType/049_02.robot index a3586c9a..75a72642 100644 --- a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType/049_02.robot +++ b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType/049_02.robot @@ -17,7 +17,7 @@ ${subscription_id_prefix}= urn:ngsi-ld:Subscription: *** Test Cases *** 049_02_01 Retrieve subscription by id [Documentation] Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the "Accept" header is "application/geo+json" for operations different than "Retrieve Entity" and "Query Entity" (get /subscriptions/{subscriptionId}) - [Tags] sub-retrieve 6_3_4 + [Tags] sub-retrieve cb-noacceptable-medtype 6_3_4 ${id}= Generate Random Entity Id ${subscription_id_prefix} ${response}= Retrieve Subscription ... id=${id} @@ -26,7 +26,7 @@ ${subscription_id_prefix}= urn:ngsi-ld:Subscription: 049_02_02 Query temporal entities [Documentation] Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the "Accept" header is "application/geo+json" for operations different than "Retrieve Entity" and "Query Entity" (get /temporal/entities) - [Tags] te-query 6_3_4 + [Tags] te-query cb-noacceptable-medtype 6_3_4 ${entity_types_to_be_retrieved}= Catenate SEPARATOR=, Vehicle ${response}= Query Temporal Representation Of Entities ... entity_types=${entity_types_to_be_retrieved} @@ -37,6 +37,6 @@ ${subscription_id_prefix}= urn:ngsi-ld:Subscription: 049_02_03 Query context source registration [Documentation] Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the "Accept" header is "application/geo+json" for operations different than "Retrieve Entity" and "Query Entity" (get /csourceRegistrations) - [Tags] csr-query 6_3_4 + [Tags] csr-query cb-noacceptable-medtype 6_3_4 ${response}= Query Context Source Registrations With Return type=Building accept=${accept} Check Response Status Code ${status_code} ${response.status_code} diff --git a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyUnsupportedMediaType/048_01.robot b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyUnsupportedMediaType/048_01.robot index d49ea021..9b0dd212 100644 --- a/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyUnsupportedMediaType/048_01.robot +++ b/TP/NGSI-LD/CommonBehaviours/CommonResponses/VerifyUnsupportedMediaType/048_01.robot @@ -26,7 +26,7 @@ ${content_type}= application/xml *** Test Cases *** 048_01_01 Endpoint patch /entities/{entityId}/attrs/{attrId} [Documentation] Verify throwing 415 HTTP status code (Unsupported Media Type) if "Content-Type" header is not "application/json" or "application/ld+json" (patch /entities/{entityId}/attrs/{attrId}) - [Tags] ea-partial-update 6_3_4 + [Tags] ea-partial-update cb-unsupport-medtype 6_3_4 ${entity_id}= Generate Random Entity Id ${vehicle_id_prefix} ${response}= Partial Update Entity Attributes ... entityId=${entity_id} @@ -38,7 +38,7 @@ ${content_type}= application/xml 048_01_02 Endpoint patch /subscriptions/{subscriptionId} [Documentation] Verify throwing 415 HTTP status code (Unsupported Media Type) if "Content-Type" header is not "application/json" or "application/ld+json" (patch /subscriptions/{subscriptionId}) - [Tags] sub-update 6_3_4 + [Tags] sub-update cb-unsupport-medtype 6_3_4 ${id}= Generate Random Entity Id ${subscription_id_prefix} ${response}= Update Subscription ${id} ${subscription_fragment} ${content_type} Check Response Status Code 415 ${response.status_code} @@ -46,7 +46,7 @@ ${content_type}= application/xml 048_01_03 Endpoint post /entities/ [Documentation] Verify throwing 415 HTTP status code (Unsupported Media Type) if "Content-Type" header is not "application/json" or "application/ld+json" (post /entities/) - [Tags] e-create 6_3_4 + [Tags] e-create cb-unsupport-medtype 6_3_4 ${entity_id}= Generate Random Entity Id ${building_id_prefix} ${response}= Create Entity Selecting Content Type ... ${building_filename} @@ -57,7 +57,7 @@ ${content_type}= application/xml 048_01_04 Endpoint post /subscriptions/ [Documentation] Verify throwing 415 HTTP status code (Unsupported Media Type) if "Content-Type" header is not "application/json" or "application/ld+json" (post /subscriptions/) - [Tags] sub-create 6_3_4 + [Tags] sub-create cb-unsupport-medtype 6_3_4 ${subscriptions_id}= Generate Random Entity Id ${subscription_id_prefix} ${response}= Create Subscription ${subscriptions_id} ${subscription_filename} ${content_type} Check Response Status Code 415 ${response.status_code} @@ -65,7 +65,7 @@ ${content_type}= application/xml 048_01_05 Endpoint post /entityOperations/create [Documentation] Verify throwing 415 HTTP status code (Unsupported Media Type) if "Content-Type" header is not "application/json" or "application/ld+json" (post /entityOperations/create) - [Tags] be-create 6_3_4 + [Tags] be-create cb-unsupport-medtype 6_3_4 ${first_entity_id}= Generate Random Entity Id ${building_id_prefix} ${second_entity_id}= Generate Random Entity Id ${building_id_prefix} ${first_entity}= Load Entity ${building_filename} ${first_entity_id} @@ -78,7 +78,7 @@ ${content_type}= application/xml 048_01_06 Endpoint post /temporal/entities/ [Documentation] Verify throwing 415 HTTP status code (Unsupported Media Type) if "Content-Type" header is not "application/json" or "application/ld+json" (post /temporal/entities/) - [Tags] te-create 6_3_4 + [Tags] te-create cb-unsupport-medtype 6_3_4 ${temporal_entity_representation_id}= Generate Random Entity Id ${tea_id_prefix} ${response}= Create Or Update Temporal Representation Of Entity Selecting Content Type ... temporal_entity_representation_id=${temporal_entity_representation_id} diff --git a/doc/files/CommonBehaviours/043_01.json b/doc/files/CommonBehaviours/043_01.json index 6de10553..28c0d936 100644 --- a/doc/files/CommonBehaviours/043_01.json +++ b/doc/files/CommonBehaviours/043_01.json @@ -15,6 +15,7 @@ "doc": "Verify receiving 503 \u2013 LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Create entity)", "tags": [ "5_2_2", + "cb-ldcontext", "e-create" ], "setup": null, @@ -31,6 +32,7 @@ "doc": "Verify receiving 503 \u2013 LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Create subscription)", "tags": [ "5_2_2", + "cb-ldcontext", "sub-create" ], "setup": null, @@ -47,6 +49,7 @@ "doc": "Verify receiving 503 \u2013 LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Create Temporal Representation of Entities)", "tags": [ "5_2_2", + "cb-ldcontext", "te-create" ], "setup": null, @@ -63,7 +66,8 @@ "doc": "Verify receiving 503 \u2013 LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Batch entity create)", "tags": [ "5_2_2", - "be-create" + "be-create", + "cb-ldcontext" ], "setup": null, "teardown": "Batch Delete Entities", @@ -79,6 +83,7 @@ "doc": "Verify receiving 503 \u2013 LdContextNotAvailable error if remote JSON-LD @context cannot be retrieved (Create context source registration)", "tags": [ "5_2_2", + "cb-ldcontext", "csr-create" ], "setup": null, @@ -91,9 +96,9 @@ } ], "permutations": [ - "when", "endpoint", - "then" + "then", + "when" ], "robotpath": "CommonBehaviours/CommonResponses/VerifyLdContextNotAvailable", "robotfile": "043_01" diff --git a/doc/files/CommonBehaviours/044_01.json b/doc/files/CommonBehaviours/044_01.json index 8f4f8182..b1d9fea9 100644 --- a/doc/files/CommonBehaviours/044_01.json +++ b/doc/files/CommonBehaviours/044_01.json @@ -18,6 +18,7 @@ "doc": "Verify that PATCH HTTP requests can be done with \"application/merge-patch+json\" as Content-Type", "tags": [ "6_3_4", + "cb-mergepatch", "ea-partial-update" ], "setup": "Create Initial Entity", diff --git a/doc/files/CommonBehaviours/044_02.json b/doc/files/CommonBehaviours/044_02.json index e8b9b514..1a732496 100644 --- a/doc/files/CommonBehaviours/044_02.json +++ b/doc/files/CommonBehaviours/044_02.json @@ -18,6 +18,7 @@ "doc": "Verify that PATCH HTTP requests can be done with \"application/merge-patch+json\" as Content-Type", "tags": [ "6_3_4", + "cb-mergepatch", "sub-update" ], "setup": "Create Initial Subscription", diff --git a/doc/files/CommonBehaviours/045_01.json b/doc/files/CommonBehaviours/045_01.json index 26ec1a40..3d36e6a4 100644 --- a/doc/files/CommonBehaviours/045_01.json +++ b/doc/files/CommonBehaviours/045_01.json @@ -15,6 +15,7 @@ "doc": "Verify that on a GET HTTP request if nothing is specified on the Accept header, \"application/json\" is assumed (/entities/{entityId})", "tags": [ "6_3_4", + "cb-get", "e-query" ], "setup": null, @@ -31,6 +32,7 @@ "doc": "Verify that on a GET HTTP request if nothing is specified on the Accept header, \"application/json\" is assumed (/subscriptions/{subscriptionId})", "tags": [ "6_3_4", + "cb-get", "sub-retrieve" ], "setup": null, @@ -47,6 +49,7 @@ "doc": "Verify that on a GET HTTP request if nothing is specified on the Accept header, \"application/json\" is assumed (/csourceRegistrations/)", "tags": [ "6_3_4", + "cb-get", "csr-query" ], "setup": null, @@ -63,6 +66,7 @@ "doc": "Verify that on a GET HTTP request if nothing is specified on the Accept header, \"application/json\" is assumed (/temporal/entities)", "tags": [ "6_3_4", + "cb-get", "te-query" ], "setup": null, @@ -75,9 +79,9 @@ } ], "permutations": [ - "when", "endpoint", - "then" + "then", + "when" ], "robotpath": "CommonBehaviours/CommonResponses/VerifyGETWithoutAccept", "robotfile": "045_01" diff --git a/doc/files/CommonBehaviours/048_01.json b/doc/files/CommonBehaviours/048_01.json index d5e4a14d..db54305a 100644 --- a/doc/files/CommonBehaviours/048_01.json +++ b/doc/files/CommonBehaviours/048_01.json @@ -15,6 +15,7 @@ "doc": "Verify throwing 415 HTTP status code (Unsupported Media Type) if \"Content-Type\" header is not \"application/json\" or \"application/ld+json\" (patch /entities/{entityId}/attrs/{attrId})", "tags": [ "6_3_4", + "cb-unsupport-medtype", "ea-partial-update" ], "setup": null, @@ -31,6 +32,7 @@ "doc": "Verify throwing 415 HTTP status code (Unsupported Media Type) if \"Content-Type\" header is not \"application/json\" or \"application/ld+json\" (patch /subscriptions/{subscriptionId})", "tags": [ "6_3_4", + "cb-unsupport-medtype", "sub-update" ], "setup": null, @@ -47,6 +49,7 @@ "doc": "Verify throwing 415 HTTP status code (Unsupported Media Type) if \"Content-Type\" header is not \"application/json\" or \"application/ld+json\" (post /entities/)", "tags": [ "6_3_4", + "cb-unsupport-medtype", "e-create" ], "setup": null, @@ -63,6 +66,7 @@ "doc": "Verify throwing 415 HTTP status code (Unsupported Media Type) if \"Content-Type\" header is not \"application/json\" or \"application/ld+json\" (post /subscriptions/)", "tags": [ "6_3_4", + "cb-unsupport-medtype", "sub-create" ], "setup": null, @@ -79,7 +83,8 @@ "doc": "Verify throwing 415 HTTP status code (Unsupported Media Type) if \"Content-Type\" header is not \"application/json\" or \"application/ld+json\" (post /entityOperations/create)", "tags": [ "6_3_4", - "be-create" + "be-create", + "cb-unsupport-medtype" ], "setup": null, "teardown": "Batch Delete Entities", @@ -95,6 +100,7 @@ "doc": "Verify throwing 415 HTTP status code (Unsupported Media Type) if \"Content-Type\" header is not \"application/json\" or \"application/ld+json\" (post /temporal/entities/)", "tags": [ "6_3_4", + "cb-unsupport-medtype", "te-create" ], "setup": null, @@ -107,10 +113,10 @@ } ], "permutations": [ - "when", "endpoint", "http_verb", - "then" + "then", + "when" ], "robotpath": "CommonBehaviours/CommonResponses/VerifyUnsupportedMediaType", "robotfile": "048_01" diff --git a/doc/files/CommonBehaviours/049_01.json b/doc/files/CommonBehaviours/049_01.json index 4cec1af7..33750fcf 100644 --- a/doc/files/CommonBehaviours/049_01.json +++ b/doc/files/CommonBehaviours/049_01.json @@ -15,6 +15,7 @@ "doc": "Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the \"Accept\" header does not imply \"application/json\" nor \"application/ld+json\" (get /entities/{entityId})", "tags": [ "6_3_4", + "cb-noacceptable-medtype", "e-query" ], "setup": null, @@ -31,6 +32,7 @@ "doc": "Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the \"Accept\" header does not imply \"application/json\" nor \"application/ld+json\" (get /subscriptions/{subscriptionId})", "tags": [ "6_3_4", + "cb-noacceptable-medtype", "sub-retrieve" ], "setup": null, @@ -47,6 +49,7 @@ "doc": "Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the \"Accept\" header does not imply \"application/json\" nor \"application/ld+json\" (get /csourceRegistrations/)", "tags": [ "6_3_4", + "cb-noacceptable-medtype", "csr-query" ], "setup": null, @@ -63,6 +66,7 @@ "doc": "Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the \"Accept\" header does not imply \"application/json\" nor \"application/ld+json\" (get /csourceSubscriptions/)", "tags": [ "6_3_4", + "cb-noacceptable-medtype", "csrsub-query" ], "setup": null, @@ -79,6 +83,7 @@ "doc": "Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the \"Accept\" header does not imply \"application/json\" nor \"application/ld+json\" (get /temporal/entities)", "tags": [ "6_3_4", + "cb-noacceptable-medtype", "te-query" ], "setup": null, @@ -91,9 +96,9 @@ } ], "permutations": [ - "when", "endpoint", - "then" + "then", + "when" ], "robotpath": "CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType", "robotfile": "049_01" diff --git a/doc/files/CommonBehaviours/049_02.json b/doc/files/CommonBehaviours/049_02.json index 2fd1ec2e..ae9b3bff 100644 --- a/doc/files/CommonBehaviours/049_02.json +++ b/doc/files/CommonBehaviours/049_02.json @@ -15,6 +15,7 @@ "doc": "Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the \"Accept\" header is \"application/geo+json\" for operations different than \"Retrieve Entity\" and \"Query Entity\" (get /subscriptions/{subscriptionId})", "tags": [ "6_3_4", + "cb-noacceptable-medtype", "sub-retrieve" ], "setup": null, @@ -31,6 +32,7 @@ "doc": "Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the \"Accept\" header is \"application/geo+json\" for operations different than \"Retrieve Entity\" and \"Query Entity\" (get /temporal/entities)", "tags": [ "6_3_4", + "cb-noacceptable-medtype", "te-query" ], "setup": null, @@ -47,6 +49,7 @@ "doc": "Verify throwing 406 HTTP status code (Not Acceptable Media Type) if the \"Accept\" header is \"application/geo+json\" for operations different than \"Retrieve Entity\" and \"Query Entity\" (get /csourceRegistrations)", "tags": [ "6_3_4", + "cb-noacceptable-medtype", "csr-query" ], "setup": null, @@ -59,9 +62,9 @@ } ], "permutations": [ - "when", "endpoint", - "then" + "then", + "when" ], "robotpath": "CommonBehaviours/CommonResponses/VerifyNotAcceptableMediaType", "robotfile": "049_02" -- GitLab From 719d4d466a5d04bc61e50f548210c409611182fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20L=C3=B3pez=20Aguilar?= Date: Tue, 20 Feb 2024 17:24:20 +0100 Subject: [PATCH 04/12] Improve scripts for documentation --- scripts/find_tc_using_test_data.py | 25 +++++++++------- scripts/find_unused_test_data.py | 47 +++++++++++++++++++++--------- 2 files changed, 48 insertions(+), 24 deletions(-) diff --git a/scripts/find_tc_using_test_data.py b/scripts/find_tc_using_test_data.py index f2f67221..56fecf5e 100644 --- a/scripts/find_tc_using_test_data.py +++ b/scripts/find_tc_using_test_data.py @@ -1,20 +1,25 @@ -import os -import robot +from os import listdir +from os.path import isdir, dirname, abspath, join +from robot import run -def find_test_data_in_tc(dir, filename, run_matching_tc): - for file in os.listdir(dir): - path = dir + "/" + file - if os.path.isdir(path): - find_test_data_in_tc(path, filename, run_matching_tc) +def find_test_data_in_tc(dir_name, filename, execute): + for file in listdir(dir_name): + path = dir_name + "/" + file + if isdir(path): + find_test_data_in_tc(path, filename, execute) else: if filename in open(path).read(): - if run_matching_tc == "Y": - robot.run(path) + if execute == "Y": + run(path) print(path) if __name__ == '__main__': + # Get the folder of the tests + base_folder = dirname(dirname(abspath(__file__))) + test_suite_folder = join(base_folder, "TP") + test_data_file = input("Name of test data file to search for: ") run_matching_tc = input("Run matching Test Cases (Y/N)?: ") - find_test_data_in_tc("TP", test_data_file, run_matching_tc) + find_test_data_in_tc(dir_name=test_suite_folder, filename=test_data_file, execute=run_matching_tc) diff --git a/scripts/find_unused_test_data.py b/scripts/find_unused_test_data.py index 6a961e79..2e00342a 100644 --- a/scripts/find_unused_test_data.py +++ b/scripts/find_unused_test_data.py @@ -1,23 +1,42 @@ -import os +from os import listdir +from os.path import isfile, isdir, dirname, abspath, join +from colorama import Fore, Style -def list_files_in_dir(dirname): - for fname in os.listdir(dirname): - if os.path.isfile(dirname + "/" + fname): - print("Looking at test data file: ", fname) - find_test_data_in_tc("TP", fname) +def list_files_in_dir(test_suite_folder, data_folder): + for filename in listdir(data_folder): + aux = join(data_folder, filename) + if isfile(aux): + print(Style.RESET_ALL) + print("Looking at test data file: ", filename) + found = find_test_data_in_tc(dir_name=test_suite_folder, filename=filename) + if not found: + print(Fore.RED + " Usage not found") + else: - list_files_in_dir(dirname + "/" + fname) + list_files_in_dir(test_suite_folder=test_suite_folder, data_folder=aux) -def find_test_data_in_tc(dir, filename): - for file in os.listdir(dir): - path = dir + "/" + file - if os.path.isdir(path): - find_test_data_in_tc(path, filename) +def find_test_data_in_tc(dir_name, filename): + found = False + for file in listdir(dir_name): + path = join(dir_name, file) + if isdir(path): + aux = find_test_data_in_tc(path, filename) + found = aux or found else: if filename in open(path).read(): - print("Found usage of", filename, "in", path) + found = True + print(Fore.GREEN + " Found usage of", filename, "in", path) + + return found + + +if __name__ == '__main__': + # Get the folder of the tests + base_folder = dirname(dirname(abspath(__file__))) + test_suite_folder = join(base_folder, "TP") + data_folder = join(base_folder, 'data') -list_files_in_dir("data") + list_files_in_dir(test_suite_folder=test_suite_folder, data_folder=data_folder) -- GitLab From 0d31a88339ee3b0a3a047b8f83306baf37d3059f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20L=C3=B3pez=20Aguilar?= Date: Thu, 29 Feb 2024 14:33:16 +0100 Subject: [PATCH 05/12] Resolve the Tag problem to identify x_x_x or x_x numbers in the spec --- doc/analysis/generaterobotdata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/analysis/generaterobotdata.py b/doc/analysis/generaterobotdata.py index ca6f418d..019cc828 100644 --- a/doc/analysis/generaterobotdata.py +++ b/doc/analysis/generaterobotdata.py @@ -560,7 +560,7 @@ class GenerateRobotData: # pics = f'PICS_{tags[0]}' # # return reference, pics - aux = [x for x in tags if match(pattern=r'^(\d+_\d+_\d+)', string=x)] + aux = [x for x in tags if match(pattern=r'^(\d+_\d+_\d+)|^(\d+_\d+)', string=x)] if len(aux) == 0: raise Exception( -- GitLab From 75a2fe2096eb6cf38ea349be0976f2fd2527740a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20L=C3=B3pez=20Aguilar?= Date: Thu, 29 Feb 2024 14:39:36 +0100 Subject: [PATCH 06/12] Resolve the missing description of the Check operation 'Check Dictionary Might Contain Additional Members' --- doc/analysis/checks.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/analysis/checks.py b/doc/analysis/checks.py index f65242bf..c56e58df 100644 --- a/doc/analysis/checks.py +++ b/doc/analysis/checks.py @@ -58,6 +58,8 @@ class Checks: Checks.check_response_body_title_when_using_session_request, 'Check Response Body Containing ProblemDetails Element Containing Title Element': Checks.check_response_body_containing_problemdetails_element_containing_title_element, + 'Check Dictionary Might Contain Additional Members': + Checks.check_dictionary_might_contain_additional_members, 'Check Response Body Containing ProblemDetails Element': Checks.check_response_body_containing_problemdetails_element, 'Check RL Response Body Containing ProblemDetails Element Containing Type Element set to': @@ -137,6 +139,10 @@ class Checks: 'params': ['response_body'], 'position': [0] }, + 'Check Dictionary Might Contain Additional Members': { + 'params': ['dictionary', 'key'], + 'position': [0, 1] + }, 'Check Response Headers Containing URI set to': { 'params': ['expected_entity_id', 'response_headers'], 'position': [0, 1] @@ -443,6 +449,13 @@ class Checks: def check_response_headers_id_not_empty(kwargs: list) -> str: return 'Response Header: Location is not Empty' + @staticmethod + def check_dictionary_might_contain_additional_members(kwargs: list) -> str: + if 'dictionary' in kwargs and 'key' in kwargs: + return f"The dictionary `{kwargs['dictionary']}' might contain the key '{kwargs['key']}'" + else: + raise Exception(f"ERROR, Expected 'dictionary' and 'key' parameters but received: {kwargs}") + @staticmethod def check_response_body_containing_an_attribute_set_to(kwargs: list) -> str: expected_parameters = ['checks', 'expected_attribute_name', 'response_body', 'expected_attribute_value'] -- GitLab From bd6103f17061766f11a61de800323315982a54d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20L=C3=B3pez=20Aguilar?= Date: Mon, 11 Mar 2024 09:32:14 +0100 Subject: [PATCH 07/12] Resolution 038s and correction of generated doc --- .../046_01.robot | 2 +- .../046_02.robot | 2 +- .../046_03.robot | 2 +- .../046_04.robot | 2 +- .../046_05.robot | 2 +- .../046_06.robot | 2 +- .../046_07.robot | 2 +- .../046_08.robot | 2 +- .../046_09.robot | 2 +- .../046_10.robot | 2 +- .../046_11.robot | 2 +- .../046_12.robot | 2 +- .../046_13.robot | 2 +- .../046_14.robot | 2 +- .../038_04.robot | 7 +++++ .../038_05.robot | 8 ++++- .../038_07.robot | 7 ++--- .../038_08.robot | 7 ++--- .../038_09.robot | 7 ++--- doc/analysis/checks.py | 23 ++++++++++++++ .../Subscription/046_01.json | 1 - .../Subscription/046_02.json | 1 - .../Subscription/046_03.json | 1 - .../Subscription/046_04.json | 1 - .../Subscription/046_05.json | 1 - .../Subscription/046_06.json | 1 - .../Subscription/046_07.json | 1 - .../Subscription/046_08.json | 1 - .../Subscription/046_09.json | 1 - .../Subscription/046_10.json | 1 - .../Subscription/046_11.json | 1 - .../Subscription/046_12.json | 1 - .../Subscription/046_13.json | 1 - .../Subscription/046_14.json | 1 - .../RegistrationSubscription/038_01.json | 2 +- .../RegistrationSubscription/038_02.json | 2 +- .../RegistrationSubscription/038_04.json | 2 +- .../RegistrationSubscription/038_05.json | 2 +- .../RegistrationSubscription/038_07.json | 2 +- .../RegistrationSubscription/038_08.json | 8 ++--- .../RegistrationSubscription/038_09.json | 2 +- .../RegistrationSubscription/047_11.json | 4 +-- resources/AssertionUtils.resource | 30 +++++++++++++++++++ 43 files changed, 102 insertions(+), 53 deletions(-) diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_01.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_01.robot index ac00e333..aebf2830 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_01.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_01.robot @@ -23,7 +23,7 @@ ${notification_server_send_url}= http://${notification_server_host}:${not *** Test Cases *** 046_01_01 Check that a notification is only sent if status is active [Documentation] Check that a notification is only sent if and only if the status is active - [Tags] sub-notification 5_8_6 046_01 + [Tags] sub-notification 5_8_6 Add Initial Entity Sleep 1s diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_02.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_02.robot index f9905f72..9fb9e494 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_02.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_02.robot @@ -22,7 +22,7 @@ ${entity_building_filepath}= building-simple-attributes-sample.jsonld *** Test Cases *** 046_02_01 Check that a notification is sent on the timeInterval [Documentation] If a Subscription defines a timeInterval member, a Notification shall be sent periodically, when the time interval (in seconds) specified in such value field is reached, regardless of Attribute changes. - [Tags] sub-notification 5_8_6 046_02 + [Tags] sub-notification 5_8_6 ${response}= Setup Initial Subscriptions ${notification} ${headers}= Wait for notification timeout=${15} diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_03.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_03.robot index 2be76dd9..b8cb874b 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_03.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_03.robot @@ -23,7 +23,7 @@ ${fragment_filename}= airQualityLevel-fragment.jsonld *** Test Cases *** 046_03_01 Check that a notification is sent with all entities [Documentation] A notification with all subscribed Entities will be included if query or geoquery are not defined. - [Tags] sub-notification 5_8_6 046_03 + [Tags] sub-notification 5_8_6 ${response}= Setup Initial Subscriptions Update Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON} diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_04.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_04.robot index 912158c4..3e487caf 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_04.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_04.robot @@ -23,7 +23,7 @@ ${fragment_filename}= airQualityLevel-fragment.jsonld *** Test Cases *** 046_04_01 Check that a notification is sent with all entities [Documentation] The notification message shall include all the subscribed Entities that changed and that match (as mandated by clauses 4.9 and 4.10) the query and geoquery conditions - [Tags] sub-notification 5_8_6 046_04 + [Tags] sub-notification 5_8_6 ${response}= Setup Initial Subscriptions ${response1}= Update Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON} diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_05.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_05.robot index 4eb6bc5f..b698a8c2 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_05.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_05.robot @@ -23,7 +23,7 @@ ${fragment_filename}= airQualityLevel-fragment.jsonld *** Test Cases *** 046_05_01 Check that a notification is sent with all entities [Documentation] The notification message shall include all the subscribed Entities that changed and that match (as mandated by clauses 4.9 and 4.10) the query and geoquery conditions - [Tags] sub-notification 5_8_6 046_05 + [Tags] sub-notification 5_8_6 Setup Initial Subscriptions ${response}= Update Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON} diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_06.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_06.robot index 6c190eb5..021d8432 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_06.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_06.robot @@ -22,7 +22,7 @@ ${notification_server_send_url}= http://${notification_server_host}:${not *** Test Cases *** 046_06_01 Check that a notification is sent with all matching entities [Documentation] only the subscribed Entities matching the query and watched attributes shall be included. - [Tags] sub-notification 5_8_6 046_06 + [Tags] sub-notification 5_8_6 ${entity_id}= Generate Random Entity Id ${building_id_prefix} Set Suite Variable ${entity_id} diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_07.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_07.robot index c20751d2..c8afb1e8 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_07.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_07.robot @@ -28,7 +28,7 @@ ${date_format_with_millis} %Y-%m-%dT%H:%M:%S.%f *** Test Cases *** 046_07_01 Check notification structure [Documentation] The structure of the notification message shall be as mandated by clause 5.3. Valid notification with attributes as stated above - [Tags] sub-notification 5_8_6 046_07 + [Tags] sub-notification 5_8_6 [Setup] Setup Initial Subscriptions ${subscription_payload_file_path} ${response}= Update Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON} diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_08.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_08.robot index 7dbc0f0a..a0c18b16 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_08.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_08.robot @@ -25,7 +25,7 @@ ${fragment_filename}= airQualityLevel-fragment.jsonld *** Test Cases *** 046_08_01 Check that a notification is sent with all attributes [Documentation] The structure of the notification message shall be as mandated by clause 5.3.1. The absence of the notification.attributes member of a Subscription means that all Entity Attributes shall be included. All attributes are included - [Tags] sub-notification 5_8_6 046_08 + [Tags] sub-notification 5_8_6 [Setup] Setup Initial Subscriptions ${False} ${response}= Update Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON} diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_09.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_09.robot index 0e8ddedd..359b126c 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_09.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_09.robot @@ -23,7 +23,7 @@ ${notification_server_send_url} http://${notification_server_host}:${not *** Test Cases *** 046_09_01 Check that a notification is sent to the endpoint [Documentation] A Notification shall be sent (as mandated by each concrete binding and including any optional endpoint.receiverInfo defined by clause 5.2.22) to the endpoint specified by the endpoint.uri member of the notification structure defined by clause 5.2.1 - [Tags] sub-notification 5_8_6 046_09 + [Tags] sub-notification 5_8_6 Setup Initial Subscriptions diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_10.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_10.robot index fbda28c0..31866d31 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_10.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_10.robot @@ -24,7 +24,7 @@ ${expected_header_links} <${ngsild_test_suite_context}>; rel="htt *** Test Cases *** 046_10_01 Check that the notification is sent as JSON [Documentation] The Notification shall be sent as JSON - [Tags] sub-notification 5_8_6 046_10 + [Tags] sub-notification 5_8_6 Setup Initial Subscriptions diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_11.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_11.robot index 75392451..f8b2d391 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_11.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_11.robot @@ -25,7 +25,7 @@ ${date_format_with_millis}= %Y-%m-%dT%H:%M:%S.%fZ *** Test Cases *** 046_11_01 Check that timesSent is increased by one [Documentation] The notification.timesSent member shall be incremented by one. - [Tags] sub-notification 5_8_6 046_11 + [Tags] sub-notification 5_8_6 Add Initial Entity Sleep 1s diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_12.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_12.robot index 6f811777..bacdb570 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_12.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_12.robot @@ -23,7 +23,7 @@ ${notification_server_send_url}= http://${notification_server_host}:${not *** Test Cases *** 046_12_01 Check that lastNotification is updated [Documentation] The status, lastNotification and lastSuccess members shall be updated with expected value and dates. This test will check these formats. - [Tags] sub-notification 5_8_6 046_12 + [Tags] sub-notification 5_8_6 Add Initial Entity Sleep 1s diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_13.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_13.robot index 7f79fd41..ccc6ef86 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_13.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_13.robot @@ -23,7 +23,7 @@ ${fragment_filename}= airQualityLevel-fragment.jsonld *** Test Cases *** 046_13_01 Check that lastFailure and status are updated if a notification could not be sent [Documentation] If the response to the notification request is different than 200 OK then implementations shall: Update notification.lastFailure with a timestamp representing the current date and time, update notification.status to "failed" - [Tags] sub-notification 5_8_6 046_13 + [Tags] sub-notification 5_8_6 @{expected_notification_data_entities}= Create List Building Update Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON} diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_14.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_14.robot index ecf8a912..b5258eb6 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_14.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_14.robot @@ -23,7 +23,7 @@ ${notification_server_send_url} http://${notification_server_host}:${not *** Test Cases *** 046_14_01 Check that a notification is sent as JSON-LD [Documentation] The Notification content shall be JSON-LD when endpoint.accept is set to 'application/ld+json' - [Tags] sub-notification 5_8_6 046_14 + [Tags] sub-notification 5_8_6 Add Initial Entity Sleep 1s diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_04.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_04.robot index e59b8a92..e2fb5b4f 100644 --- a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_04.robot +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_04.robot @@ -24,6 +24,13 @@ ${subscription_payload_file_path}= csourceSubscriptions/subscription-inacti Check Response Headers Containing URI set to ${subscription_id} ${response.headers} ${response1}= Retrieve Context Source Registration Subscription ... subscription_id=${subscription_id} + + # The conversion of a boolean data to json for a python object transform false -> False and true -> True + Check Response Body Containing a Boolean Attribute set to + ... expected_attribute_name=isActive + ... response_body=${response1.json()} + ... expected_attribute_value=False + Check Response Body Containing an Attribute set to ... expected_attribute_name=status ... response_body=${response1.json()} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_05.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_05.robot index 17a1935b..a8b4a13d 100644 --- a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_05.robot +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_05.robot @@ -26,14 +26,20 @@ ${subscription_payload_file_path}= csourceSubscriptions/subscription-expire Check Response Status Code 201 ${response.status_code} Check Response Headers Containing URI set to ${subscription_id} ${response.headers} Sleep 15s + ${response1}= Retrieve Context Source Registration Subscription ... subscription_id=${subscription_id} + + Check Dictionary Contains DateTime Value + ... dictionary=${response1.json()} + ... key=expiresAt + ... expected value=${expiresAt} + Check Response Body Containing an Attribute set to ... expected_attribute_name=status ... response_body=${response1.json()} ... expected_attribute_value=expired - *** Keywords *** Generate Random Ids For Context Source Registration Subscriptions ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_07.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_07.robot index db8fbe78..e9cb913c 100644 --- a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_07.robot +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_07.robot @@ -21,10 +21,9 @@ ${subscription_payload_file_path}= csourceSubscriptions/subscription-sample ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} ${response}= Create Context Source Registration Subscription ${subscription_payload} Check Response Status Code 409 ${response.status_code} - Check Response Body Containing ProblemDetails Element Containing Type Element set to - ... ${response.json()} - ... ${ERROR_TYPE_ALREADY_EXISTS} - Check Response Body Containing ProblemDetails Element Containing Title Element ${response.json()} + Check Response Body Containing ProblemDetails Element + ... response_body=${response.json()} + ... problem_type=${ERROR_TYPE_ALREADY_EXISTS} *** Keywords *** diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_08.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_08.robot index 8a119eaa..05e2da31 100644 --- a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_08.robot +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_08.robot @@ -36,7 +36,6 @@ Create Invalid Context Source Registration Subscription ${subscription_payload}= Load Test Sample ${filepath} ${subscription_id} ${response}= Create Context Source Registration Subscription ${subscription_payload} Check Response Status Code 400 ${response.status_code} - Check Response Body Containing ProblemDetails Element Containing Type Element set to - ... ${response.json()} - ... ${ERROR_TYPE_BAD_REQUEST_DATA} - Check Response Body Containing ProblemDetails Element Containing Title Element ${response.json()} + Check Response Body Containing ProblemDetails Element + ... response_body=${response.json()} + ... problem_type=${ERROR_TYPE_BAD_REQUEST_DATA} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_09.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_09.robot index b3da6511..420689f2 100644 --- a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_09.robot +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/038_09.robot @@ -19,7 +19,6 @@ ${subscription_payload_file_path}= csourceSubscriptions/subscription-expire ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} ${response}= Create Context Source Registration Subscription ${subscription_payload} Check Response Status Code 400 ${response.status_code} - Check Response Body Containing ProblemDetails Element Containing Type Element set to - ... ${response.json()} - ... ${ERROR_TYPE_BAD_REQUEST_DATA} - Check Response Body Containing ProblemDetails Element Containing Title Element ${response.json()} + Check Response Body Containing ProblemDetails Element + ... response_body=${response.json()} + ... problem_type=${ERROR_TYPE_BAD_REQUEST_DATA} diff --git a/doc/analysis/checks.py b/doc/analysis/checks.py index c56e58df..1b3be4fc 100644 --- a/doc/analysis/checks.py +++ b/doc/analysis/checks.py @@ -56,6 +56,10 @@ class Checks: Checks.check_response_body_containing_problemdetails_element_containing_type_element_set_to, 'Check Response Body Title When Using Session Request': Checks.check_response_body_title_when_using_session_request, + 'Check Response Body Containing a Boolean Attribute set to': + Checks.check_response_body_containing_a_boolean_attribute_set_to, + 'Check Dictionary Contains DateTime Value': + Checks.check_dictionary_contains_datetime_value, 'Check Response Body Containing ProblemDetails Element Containing Title Element': Checks.check_response_body_containing_problemdetails_element_containing_title_element, 'Check Dictionary Might Contain Additional Members': @@ -187,6 +191,14 @@ class Checks: 'params': ['response_body'], 'position': [0] }, + 'Check Response Body Containing a Boolean Attribute set to': { + 'params': ['expected_attribute_name', 'response_body', 'expected_attribute_value'], + 'position': [0, 1, 2] + }, + 'Check Dictionary Contains DateTime Value': { + 'params': ['dictionary', 'key', 'expected value'], + 'position': [0, 1, 2] + }, 'Check Response Body Containing List Containing Subscription elements': { 'params': ['file', 'id', 'response'], 'position': [0, 1, 2] @@ -433,6 +445,11 @@ class Checks: else: raise Exception(f'ERROR, Expected status_code parameter but received: {kwargs}') + @staticmethod + def check_response_body_containing_a_boolean_attribute_set_to(kwargs: list) -> str: + return (f"Check that the payload body contains a boolean attribute with name " + f"'{kwargs['expected_attribute_name']}' and value '{kwargs['expected_attribute_value']}") + @staticmethod def check_response_headers_link_not_empty(kwargs: list) -> str: return f'Response Header: Link is not Empty' @@ -583,6 +600,12 @@ class Checks: else: raise Exception(f"ERROR, expected parameters 'filename' and 'entity_ids', but received '{kwargs}'") + @staticmethod + def check_dictionary_contains_datetime_value(kwargs: list) -> str: + # ${dictionary} ${key} ${expected value} + return (f"Check that the dictionary contains the key '{kwargs['key']}' with type DateTime and value set " + f"to '{kwargs['expected value']}'") + @staticmethod def check_response_body_containing_subscription_element(kwargs: list) -> str: if 'filename' in kwargs and 'subscription_id' in kwargs and 'response_body' in kwargs: diff --git a/doc/files/ContextInformation/Subscription/046_01.json b/doc/files/ContextInformation/Subscription/046_01.json index 63c2a98c..9885b485 100644 --- a/doc/files/ContextInformation/Subscription/046_01.json +++ b/doc/files/ContextInformation/Subscription/046_01.json @@ -21,7 +21,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_01_01", "doc": "Check that a notification is only sent if and only if the status is active", "tags": [ - "046_01", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_02.json b/doc/files/ContextInformation/Subscription/046_02.json index 4d38100b..4e373041 100644 --- a/doc/files/ContextInformation/Subscription/046_02.json +++ b/doc/files/ContextInformation/Subscription/046_02.json @@ -20,7 +20,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_02_01", "doc": "If a Subscription defines a timeInterval member, a Notification shall be sent periodically, when the time interval (in seconds) specified in such value field is reached, regardless of Attribute changes.", "tags": [ - "046_02", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_03.json b/doc/files/ContextInformation/Subscription/046_03.json index af2e1cec..25870109 100644 --- a/doc/files/ContextInformation/Subscription/046_03.json +++ b/doc/files/ContextInformation/Subscription/046_03.json @@ -21,7 +21,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_03_01", "doc": "A notification with all subscribed Entities will be included if query or geoquery are not defined.", "tags": [ - "046_03", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_04.json b/doc/files/ContextInformation/Subscription/046_04.json index f51309a4..bd6f1779 100644 --- a/doc/files/ContextInformation/Subscription/046_04.json +++ b/doc/files/ContextInformation/Subscription/046_04.json @@ -20,7 +20,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_04_01", "doc": "The notification message shall include all the subscribed Entities that changed and that match (as mandated by clauses 4.9 and 4.10) the query and geoquery conditions", "tags": [ - "046_04", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_05.json b/doc/files/ContextInformation/Subscription/046_05.json index 0b1a30fa..ea344cac 100644 --- a/doc/files/ContextInformation/Subscription/046_05.json +++ b/doc/files/ContextInformation/Subscription/046_05.json @@ -20,7 +20,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_05_01", "doc": "The notification message shall include all the subscribed Entities that changed and that match (as mandated by clauses 4.9 and 4.10) the query and geoquery conditions", "tags": [ - "046_05", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_06.json b/doc/files/ContextInformation/Subscription/046_06.json index 7515099f..d6656b11 100644 --- a/doc/files/ContextInformation/Subscription/046_06.json +++ b/doc/files/ContextInformation/Subscription/046_06.json @@ -17,7 +17,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_06_01", "doc": "only the subscribed Entities matching the query and watched attributes shall be included.", "tags": [ - "046_06", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_07.json b/doc/files/ContextInformation/Subscription/046_07.json index ef588be6..c23d42ee 100644 --- a/doc/files/ContextInformation/Subscription/046_07.json +++ b/doc/files/ContextInformation/Subscription/046_07.json @@ -19,7 +19,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_07_01", "doc": "The structure of the notification message shall be as mandated by clause 5.3. Valid notification with attributes as stated above", "tags": [ - "046_07", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_08.json b/doc/files/ContextInformation/Subscription/046_08.json index 71e9f8d4..c7cfd763 100644 --- a/doc/files/ContextInformation/Subscription/046_08.json +++ b/doc/files/ContextInformation/Subscription/046_08.json @@ -19,7 +19,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_08_01", "doc": "The structure of the notification message shall be as mandated by clause 5.3.1. The absence of the notification.attributes member of a Subscription means that all Entity Attributes shall be included. All attributes are included", "tags": [ - "046_08", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_09.json b/doc/files/ContextInformation/Subscription/046_09.json index dda1bb2d..81b306d9 100644 --- a/doc/files/ContextInformation/Subscription/046_09.json +++ b/doc/files/ContextInformation/Subscription/046_09.json @@ -20,7 +20,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_09_01", "doc": "A Notification shall be sent (as mandated by each concrete binding and including any optional endpoint.receiverInfo defined by clause 5.2.22) to the endpoint specified by the endpoint.uri member of the notification structure defined by clause 5.2.1", "tags": [ - "046_09", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_10.json b/doc/files/ContextInformation/Subscription/046_10.json index 7f94d577..89b25aaf 100644 --- a/doc/files/ContextInformation/Subscription/046_10.json +++ b/doc/files/ContextInformation/Subscription/046_10.json @@ -20,7 +20,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_10_01", "doc": "The Notification shall be sent as JSON", "tags": [ - "046_10", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_11.json b/doc/files/ContextInformation/Subscription/046_11.json index 5cf674a1..ed362a5c 100644 --- a/doc/files/ContextInformation/Subscription/046_11.json +++ b/doc/files/ContextInformation/Subscription/046_11.json @@ -21,7 +21,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_11_01", "doc": "The notification.timesSent member shall be incremented by one.", "tags": [ - "046_11", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_12.json b/doc/files/ContextInformation/Subscription/046_12.json index 324c7945..4f479bcd 100644 --- a/doc/files/ContextInformation/Subscription/046_12.json +++ b/doc/files/ContextInformation/Subscription/046_12.json @@ -21,7 +21,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_12_01", "doc": "The status, lastNotification and lastSuccess members shall be updated with expected value and dates. This test will check these formats.", "tags": [ - "046_12", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_13.json b/doc/files/ContextInformation/Subscription/046_13.json index 785d6b2b..c2b5af74 100644 --- a/doc/files/ContextInformation/Subscription/046_13.json +++ b/doc/files/ContextInformation/Subscription/046_13.json @@ -21,7 +21,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_13_01", "doc": "If the response to the notification request is different than 200 OK then implementations shall: Update notification.lastFailure with a timestamp representing the current date and time, update notification.status to \"failed\"", "tags": [ - "046_13", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextInformation/Subscription/046_14.json b/doc/files/ContextInformation/Subscription/046_14.json index fd449970..44345e3f 100644 --- a/doc/files/ContextInformation/Subscription/046_14.json +++ b/doc/files/ContextInformation/Subscription/046_14.json @@ -21,7 +21,6 @@ "permutation_tp_id": "TP/NGSI-LD/CI/SUB/046_14_01", "doc": "The Notification content shall be JSON-LD when endpoint.accept is set to 'application/ld+json'", "tags": [ - "046_14", "5_8_6", "sub-notification" ], diff --git a/doc/files/ContextSource/RegistrationSubscription/038_01.json b/doc/files/ContextSource/RegistrationSubscription/038_01.json index cfc50ee4..bdd28e67 100644 --- a/doc/files/ContextSource/RegistrationSubscription/038_01.json +++ b/doc/files/ContextSource/RegistrationSubscription/038_01.json @@ -23,7 +23,7 @@ "setup": null, "teardown": null, "template": null, - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 201 and\n Create Context Source Registration Subscription with Response Header: Location containing $${subscription_id} and\n Retrieve Context Source Registration Subscription with Check Created Resource Set To and\n Query Parameter: 'ignored_keys' set to '${None}'\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 201 and\n Create Context Source Registration Subscription with Response Header: Location containing $${subscription_id} and\n Retrieve Context Source Registration Subscription with Check Created Resource Set To and\n Query Parameter: 'ignored_keys' set to '${None}' and\n Retrieve Context Source Registration Subscription with The dictionary `${response1.json()}' might contain the key 'lastNotification' and\n Retrieve Context Source Registration Subscription with The dictionary `${response1.json()}' might contain the key 'lastFailure' and\n Retrieve Context Source Registration Subscription with The dictionary `${response1.json()}' might contain the key 'lastSuccess' and\n Retrieve Context Source Registration Subscription with The dictionary `${response1.json()}' might contain the key 'timesSent'\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" diff --git a/doc/files/ContextSource/RegistrationSubscription/038_02.json b/doc/files/ContextSource/RegistrationSubscription/038_02.json index 81ecf1fe..1c2eb5f2 100644 --- a/doc/files/ContextSource/RegistrationSubscription/038_02.json +++ b/doc/files/ContextSource/RegistrationSubscription/038_02.json @@ -22,7 +22,7 @@ "setup": null, "teardown": null, "template": null, - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 201 and\n Create Context Source Registration Subscription with Response Header: Location containing $${subscription_id} and\n Retrieve Context Source Registration Subscription with Check Created Resource Set To and\n Query Parameter: 'ignored_keys' set to '${None}'\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 201 and\n Retrieve Context Source Registration Subscription with Check Created Resource Set To and\n Query Parameter: 'ignored_keys' set to '${None}'\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" diff --git a/doc/files/ContextSource/RegistrationSubscription/038_04.json b/doc/files/ContextSource/RegistrationSubscription/038_04.json index 9a536274..5f0e9a57 100644 --- a/doc/files/ContextSource/RegistrationSubscription/038_04.json +++ b/doc/files/ContextSource/RegistrationSubscription/038_04.json @@ -23,7 +23,7 @@ "setup": null, "teardown": null, "template": null, - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 201 and\n Create Context Source Registration Subscription with Response Header: Location containing $${subscription_id} and\n Retrieve Context Source Registration Subscription with Check Response Body containing an Attribute set to and\n Query Parameter: expected_attribute_name set to 'status' and\n Query Parameter: response_body set to 'response1.json()' and\n Query Parameter: expected_attribute_value set to 'paused'\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 201 and\n Create Context Source Registration Subscription with Response Header: Location containing $${subscription_id} and\n Retrieve Context Source Registration Subscription with Check that the payload body contains a boolean attribute with name 'expected_attribute_name=isActive' and value 'expected_attribute_value=False and\n Retrieve Context Source Registration Subscription with Check Response Body containing an Attribute set to and\n Query Parameter: expected_attribute_name set to 'status' and\n Query Parameter: response_body set to 'response1.json()' and\n Query Parameter: expected_attribute_value set to 'paused'\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" diff --git a/doc/files/ContextSource/RegistrationSubscription/038_05.json b/doc/files/ContextSource/RegistrationSubscription/038_05.json index eddf9725..2df2c6be 100644 --- a/doc/files/ContextSource/RegistrationSubscription/038_05.json +++ b/doc/files/ContextSource/RegistrationSubscription/038_05.json @@ -23,7 +23,7 @@ "setup": null, "teardown": null, "template": null, - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 201 and\n Create Context Source Registration Subscription with Response Header: Location containing $${subscription_id} and\n Retrieve Context Source Registration Subscription with Check Response Body containing an Attribute set to and\n Query Parameter: expected_attribute_name set to 'status' and\n Query Parameter: response_body set to 'response1.json()' and\n Query Parameter: expected_attribute_value set to 'expired'\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 201 and\n Create Context Source Registration Subscription with Response Header: Location containing $${subscription_id} and\n Retrieve Context Source Registration Subscription with Check that the dictionary contains the key 'key=expiresAt' with type DateTime and value set to 'expected value=${expiresAt}' and\n Retrieve Context Source Registration Subscription with Check Response Body containing an Attribute set to and\n Query Parameter: expected_attribute_name set to 'status' and\n Query Parameter: response_body set to 'response1.json()' and\n Query Parameter: expected_attribute_value set to 'expired'\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" diff --git a/doc/files/ContextSource/RegistrationSubscription/038_07.json b/doc/files/ContextSource/RegistrationSubscription/038_07.json index 3685bc23..f043e5f2 100644 --- a/doc/files/ContextSource/RegistrationSubscription/038_07.json +++ b/doc/files/ContextSource/RegistrationSubscription/038_07.json @@ -23,7 +23,7 @@ "setup": "Setup Initial Context Source Registration Subscription", "teardown": "Delete Initial Context Source Registration Subscription", "template": null, - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 409 and\n Create Context Source Registration Subscription with Response Body containing the type 'https://uri.etsi.org/ngsi-ld/errors/AlreadyExists' and\n Create Context Source Registration Subscription with Response body containing 'title' element\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 409 and\n Create Context Source Registration Subscription with Response Body containing the type 'problem_type=${ERROR_TYPE_ALREADY_EXISTS}' and Response Body Title is a string and is not ${EMPTY} and Response Body Detail is a string and is not ${EMPTY} and Response Boty Title is not equal to Response Body Detail\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" diff --git a/doc/files/ContextSource/RegistrationSubscription/038_08.json b/doc/files/ContextSource/RegistrationSubscription/038_08.json index 580e5feb..e936c3a8 100644 --- a/doc/files/ContextSource/RegistrationSubscription/038_08.json +++ b/doc/files/ContextSource/RegistrationSubscription/038_08.json @@ -22,7 +22,7 @@ "setup": null, "teardown": null, "template": "Create Invalid Context Source Registration Subscription", - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'https://uri.etsi.org/ngsi-ld/errors/BadRequestData' and\n Create Context Source Registration Subscription with Response body containing 'title' element\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'problem_type=${ERROR_TYPE_BAD_REQUEST_DATA}' and Response Body Title is a string and is not ${EMPTY} and Response Body Detail is a string and is not ${EMPTY} and Response Boty Title is not equal to Response Body Detail\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" @@ -38,7 +38,7 @@ "setup": null, "teardown": null, "template": "Create Invalid Context Source Registration Subscription", - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'https://uri.etsi.org/ngsi-ld/errors/BadRequestData' and\n Create Context Source Registration Subscription with Response body containing 'title' element\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'problem_type=${ERROR_TYPE_BAD_REQUEST_DATA}' and Response Body Title is a string and is not ${EMPTY} and Response Body Detail is a string and is not ${EMPTY} and Response Boty Title is not equal to Response Body Detail\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" @@ -54,7 +54,7 @@ "setup": null, "teardown": null, "template": "Create Invalid Context Source Registration Subscription", - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'https://uri.etsi.org/ngsi-ld/errors/BadRequestData' and\n Create Context Source Registration Subscription with Response body containing 'title' element\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'problem_type=${ERROR_TYPE_BAD_REQUEST_DATA}' and Response Body Title is a string and is not ${EMPTY} and Response Body Detail is a string and is not ${EMPTY} and Response Boty Title is not equal to Response Body Detail\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" @@ -70,7 +70,7 @@ "setup": null, "teardown": null, "template": "Create Invalid Context Source Registration Subscription", - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'https://uri.etsi.org/ngsi-ld/errors/BadRequestData' and\n Create Context Source Registration Subscription with Response body containing 'title' element\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'problem_type=${ERROR_TYPE_BAD_REQUEST_DATA}' and Response Body Title is a string and is not ${EMPTY} and Response Body Detail is a string and is not ${EMPTY} and Response Boty Title is not equal to Response Body Detail\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" diff --git a/doc/files/ContextSource/RegistrationSubscription/038_09.json b/doc/files/ContextSource/RegistrationSubscription/038_09.json index de06ab75..fa7ce69c 100644 --- a/doc/files/ContextSource/RegistrationSubscription/038_09.json +++ b/doc/files/ContextSource/RegistrationSubscription/038_09.json @@ -20,7 +20,7 @@ "setup": null, "teardown": null, "template": null, - "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'https://uri.etsi.org/ngsi-ld/errors/BadRequestData' and\n Create Context Source Registration Subscription with Response body containing 'title' element\n}", + "then": "then {\n the SUT sends a valid Response for the operations:\n Create Context Source Registration Subscription with Response Status Code set to 400 and\n Create Context Source Registration Subscription with Response Body containing the type 'problem_type=${ERROR_TYPE_BAD_REQUEST_DATA}' and Response Body Title is a string and is not ${EMPTY} and Response Body Detail is a string and is not ${EMPTY} and Response Boty Title is not equal to Response Body Detail\n}", "when": "when {\n the SUT receives a Request from the client containing:\n URL set to '/ngsi-ld/v1/csourceSubscriptions'\n method set to 'POST'\n Create Context Source Registration Subscription with filename set to '${subscription_payload}', accept set to '${EMPTY}', and content-type set to 'application/ld+json'\n}", "http_verb": "POST", "endpoint": "csourceSubscriptions" diff --git a/doc/files/ContextSource/RegistrationSubscription/047_11.json b/doc/files/ContextSource/RegistrationSubscription/047_11.json index d0c847e6..e2ab66d3 100644 --- a/doc/files/ContextSource/RegistrationSubscription/047_11.json +++ b/doc/files/ContextSource/RegistrationSubscription/047_11.json @@ -6,8 +6,8 @@ "parent_release": "v1.3.1", "pics_selection": "PICS_5_11_7", "keywords": [ - "Start Local Server", - "Stop Local Server" + "Receive cSourceNotification For Matching Context Source Registrations On Management Interval", + "Delete Created Context Source Registrations" ], "teardown": "Stop Local Server", "initial_condition": "with {\n the SUT containing an initial state\n}", diff --git a/resources/AssertionUtils.resource b/resources/AssertionUtils.resource index 1650e4cd..30238f0b 100755 --- a/resources/AssertionUtils.resource +++ b/resources/AssertionUtils.resource @@ -84,6 +84,19 @@ Check Response Body Containing an Attribute set to Should Be Equal ${response_body['${expected_attribute_name}']} ${expected_attribute_value} END +Check Response Body Containing a Boolean Attribute set to + [Arguments] ${expected_attribute_name} ${response_body} ${expected_attribute_value} + Dictionary Should Contain Key ${response_body} ${expected_attribute_name} + IF '${expected_attribute_value}'=='True' + Should Be True ${response_body['${expected_attribute_name}']} + ELSE + IF '${expected_attribute_value}'=='False' + Should Not Be True ${response_body['${expected_attribute_name}']} + ELSE + Fail Unexpected boolean value, only True/False are allowed, received ${expected_attribute_value} + END + END + Check Response Body Containing Batch Operation Result [Arguments] ${expected_batch_operation_result} ${response_body} @{expected_successful_entities_ids}= Get From Dictionary ${expected_batch_operation_result} success @@ -478,3 +491,20 @@ Check Dictionary Might Contain Additional Members ELSE Log The key '${key}' is not present in the dictionary END + +Check Dictionary Contains DateTime Value + [Arguments] ${dictionary} ${key} ${expected value} + Dictionary Should Contain Key ${dictionary} ${key} + + ${obtained value}= Evaluate $dictionary.get($key) + ${date}= Parse Ngsild Date ${dictionary}[${key}] + + Should Not Be Equal + ... ${date} + ... ${None} + ... The key (${key}) contains a value (${obtained value}) that it is not in DateTime format + + Should Be Equal + ... ${expected value} + ... ${obtained value} + ... The expected value (${expected value}) is not the same as the obtained value (${obtained value}) -- GitLab From 6d895fccbb1b8260f461192e9f824d4f904e3fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20L=C3=B3pez=20Aguilar?= Date: Thu, 14 Mar 2024 17:49:12 +0100 Subject: [PATCH 08/12] Update 039s and 040s and the documentation about then --- .../Generate_Documentation_Data.xml | 1 + .../040_01.robot | 36 ++++++++++++++++--- .../040_02.robot | 10 +++--- .../040_03.robot | 10 +++--- .../039_01.robot | 4 +++ .../039_02.robot | 7 ++-- .../039_03.robot | 7 ++-- .../039_04.robot | 7 ++-- .../039_05.robot | 7 ++-- doc/analysis/checks.py | 24 +++++++++++-- .../ContextInformation/Provision/001_01.json | 8 ++--- .../ContextInformation/Provision/007_01.json | 4 +-- .../Subscription/028_01.json | 2 +- .../ContextSource/Registration/033_01_01.json | 2 +- .../ContextSource/Registration/033_01_02.json | 2 +- .../ContextSource/Registration/033_01_03.json | 2 +- .../RegistrationSubscription/038_01.json | 2 +- .../RegistrationSubscription/038_02.json | 2 +- .../RegistrationSubscription/039_01.json | 2 +- .../RegistrationSubscription/039_02.json | 2 +- .../RegistrationSubscription/039_03.json | 2 +- .../RegistrationSubscription/039_04.json | 4 +-- .../RegistrationSubscription/039_05.json | 2 +- .../RegistrationSubscription/040_01.json | 2 +- .../RegistrationSubscription/040_02.json | 2 +- .../RegistrationSubscription/040_03.json | 2 +- resources/AssertionUtils.resource | 33 ++++++++++++++--- 27 files changed, 133 insertions(+), 55 deletions(-) diff --git a/.idea/runConfigurations/Generate_Documentation_Data.xml b/.idea/runConfigurations/Generate_Documentation_Data.xml index 81f4330c..d4e60cba 100644 --- a/.idea/runConfigurations/Generate_Documentation_Data.xml +++ b/.idea/runConfigurations/Generate_Documentation_Data.xml @@ -1,6 +1,7 @@ +