diff --git a/nmostesting/Config.py b/nmostesting/Config.py index c2c80526..31cd0ed2 100644 --- a/nmostesting/Config.py +++ b/nmostesting/Config.py @@ -292,17 +292,6 @@ }, } }, - "is-14": { - "repo": "is-14", - "versions": ["v1.0"], - "default_version": "v1.0", - "apis": { - "configuration": { - "name": "Device Configuration", - "raml": "ConfigurationAPI.raml" - }, - } - }, "ms-05-02": { "repo": "ms-05-02", "versions": ["v1.0"], @@ -320,7 +309,7 @@ "apis": { "featuresets": { "name": "Control Feature Sets", - "repo_paths": ["identification", "monitoring", "device-configuration"] + "repo_paths": ["identification", "monitoring"] } } }, diff --git a/nmostesting/NMOSTesting.py b/nmostesting/NMOSTesting.py index 884aa202..15a994c6 100644 --- a/nmostesting/NMOSTesting.py +++ b/nmostesting/NMOSTesting.py @@ -84,8 +84,6 @@ # from .suites import IS1001Test from .suites import IS1201Test from .suites import IS1202Test -from .suites import IS1401Test -from .suites import IS1402Test from .suites import BCP00301Test from .suites import BCP0060101Test from .suites import BCP0060102Test @@ -392,48 +390,6 @@ "class": IS1202Test.IS1202Test, "urlpath": True }, - "IS-14-01": { - "name": "IS-14 Configuration", - "specs": [{ - "spec_key": "is-04", - "api_key": "node" - }, { - "spec_key": "is-14", - "api_key": "configuration" - }, { - "spec_key": "ms-05-02", - "api_key": "controlframework", - "disable_fields": ["host", "port"] - }], - "extra_specs": [{ - "spec_key": "nmos-control-feature-sets", - "api_key": "featuresets" - }], - "class": IS1401Test.IS1401Test - }, - "IS-14-02": { - "name": "IS-14 Invasive Testing", - "specs": [{ - "spec_key": "is-04", - "api_key": "node" - }, { - "spec_key": "is-14", - "api_key": "configuration" - }, { - "spec_key": "ms-05-02", - "api_key": "controlframework", - "disable_fields": ["host", "port"] - }, { - "spec_key": "controller-tests", - "api_key": "testquestion", - "disable_fields": [] if CONFIG.IS12_INTERACTIVE_TESTING else ["host", "port", "urlpath"] - }], - "extra_specs": [{ - "spec_key": "nmos-control-feature-sets", - "api_key": "featuresets" - }], - "class": IS1402Test.IS1402Test - }, "BCP-003-01": { "name": "BCP-003-01 Secure Communication", "specs": [{ diff --git a/nmostesting/suites/IS1401Test.py b/nmostesting/suites/IS1401Test.py deleted file mode 100644 index d3d2c5c3..00000000 --- a/nmostesting/suites/IS1401Test.py +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright (C) 2024 Advanced Media Workflow Association -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# from ..GenericTest import NMOSTestException -from copy import copy -from nmostesting.GenericTest import NMOSTestException -from nmostesting.MS05Utils import NcBlockProperties, NcMethodResultError -from ..IS14Utils import IS14Utils -from .MS0501Test import MS0501Test - -NODE_API_KEY = "node" -CONFIGURATION_API_KEY = "configuration" - - -class IS1401Test(MS0501Test): - """ - Runs Tests covering MS-05 and IS-14 - """ - def __init__(self, apis, **kwargs): - self.is14_utils = IS14Utils(apis) - MS0501Test.__init__(self, apis, self.is14_utils, **kwargs) - self.node_url = apis[NODE_API_KEY]["url"] - self.configuration_url = apis[CONFIGURATION_API_KEY]["url"] - - def set_up_tests(self): - super().set_up_tests() - - def tear_down_tests(self): - super().tear_down_tests() - - def test_01(self, test): - """Control Endpoint: Node under test advertises IS-14 control endpoint matching API under test""" - # https://specs.amwa.tv/is-14/branches/v1.0-dev/docs/IS-04_interactions.html - - control_type = "urn:x-nmos:control:configuration/" + self.apis[CONFIGURATION_API_KEY]["version"] - return self.is14_utils.do_test_device_control( - test, - self.node_url, - control_type, - self.configuration_url, - self.authorization - ) - - def test_02(self, test): - """Role Path Syntax: Use the '.' character to delimit roles in role paths""" - - role_paths_endpoint = f"{self.configuration_url}rolePaths/" - - valid, response = self.do_request("GET", role_paths_endpoint) - - if not valid or response.status_code != 200: - test.FAIL("Failed to get roles") - - for role_path in response.json(): - if role_path != "root" and not role_path.startswith("root."): - test.FAIL("Unexpected role path syntax.", "https://specs.amwa.tv/is-14/branches/" - + f"{self.apis[CONFIGURATION_API_KEY]['spec_branch']}" - + "/docs/API_requests.html#url-and-usage") - return test.PASS() - - def check_block_member_role_syntax(self, test, role_path): - """ Check syntax of roles in this block """ - method_result = self.is14_utils.get_property(test, NcBlockProperties.MEMBERS.value, role_path=role_path) - - if isinstance(method_result, NcMethodResultError): - raise NMOSTestException(test.FAIL(f"{self.is14_utils.create_role_path_string(role_path)}: " - f"Error getting members property: {str(method_result.errorMessage)}. ")) - - response = method_result.value - for member in response: - # check the class descriptor schema - if "." in member["role"]: - raise NMOSTestException(test.FAIL(f"Illegal role syntax: {member['role']}. " - + "Roles must not contain a '.' character", - "https://specs.amwa.tv/is-14/branches/" - + f"{self.apis[CONFIGURATION_API_KEY]['spec_branch']}" - + "/docs/API_requests.html#url-and-usage")) - if self.is14_utils.is_block(member["classId"]): - child_role_path = copy(role_path) - child_role_path.append(member["role"]) - self.check_block_member_role_syntax(test, child_role_path) - - def test_03(self, test): - """Role Syntax: Check the `.` character is not be used in roles""" - # https://specs.amwa.tv/is-14/branches/v1.0-dev/docs/API_requests.html#url-and-usage - - self.check_block_member_role_syntax(test, ["root"]) - - return test.PASS() diff --git a/nmostesting/suites/IS1402Test.py b/nmostesting/suites/IS1402Test.py deleted file mode 100644 index 2b0118a4..00000000 --- a/nmostesting/suites/IS1402Test.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright (C) 2024 Advanced Media Workflow Association -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from ..IS14Utils import IS14Utils -from .MS0502Test import MS0502Test - - -class IS1402Test(MS0502Test): - """ - Runs Invasive Tests covering MS-05 and IS-12 - """ - def __init__(self, apis, **kwargs): - MS0502Test.__init__(self, apis, IS14Utils(apis), **kwargs) - - def set_up_tests(self): - super().set_up_tests() - - def tear_down_tests(self): - super().tear_down_tests()