Skip to content

Commit

Permalink
Fix IS-14 utility functions
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathan-r-thorpe committed May 9, 2024
1 parent c3d58d9 commit 37301ea
Showing 1 changed file with 28 additions and 21 deletions.
49 changes: 28 additions & 21 deletions nmostesting/IS14Utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,19 @@ def _do_request(self, test, method, url, **kwargs):

if not valid:
raise NMOSTestException(test.FAIL(f"{r} for {method}: {url}"))
if r.status_code < 200 or r.status_code > 299:
raise NMOSTestException(test.FAIL(f"Unexpected status code: {r.status_code} for {method}: {url}"))
try:
self.validate_reference_datatype_schema(test, r.json(), "NcMethodResult", f"{method} :{url} ")
return r.json()
except ValueError as e:
raise NMOSTestException(test.FAIL(f"Error: {e.args[0]} for {method}: {url}"))
except NMOSTestException as e:
if r.status_code < 200 or r.status_code > 299:
raise NMOSTestException(test.FAIL(f"Unexpected status code: {r.status_code} for {method}: {url}"))
raise NMOSTestException(test.FAIL(f"Error: {e.args[0]} for {method}: {url}"))

if r.status_code < 200 or r.status_code > 299:
raise NMOSTestException(test.FAIL(r.json()))

return r.json()

# Overridden functions
def get_property(self, test, property_id, role_path, **kwargs):
Expand All @@ -75,65 +81,66 @@ def get_property_value(self, test, property_id, role_path, **kwargs):
def set_property(self, test, property_id, argument, role_path, **kwargs):
"""Get value of property from object. Raises NMOSTestException on error"""
property_value_endpoint = self._create_property_value_endpoint(role_path, property_id)
return self._do_request(test, "PUT", property_value_endpoint, data={"value": argument})
return self._do_request(test, "PUT", property_value_endpoint, json={"value": argument})

def invoke_method(self, test, method_id, argument, role_path, **kwargs):
"""Invoke method on Node. Raises NMOSTestException on error"""
methods_endpoint = self._create_methods_endpoint(role_path, method_id)
return self._do_request(test, "PATCH", methods_endpoint, data={"argument": argument})
return self._do_request(test, "PATCH", methods_endpoint, json={"argument": argument})

def get_sequence_item(self, test, property_id, index, role_path, **kwargs):
"""Get value from sequence property. Raises NMOSTestException on error"""
methods_endpoint = self._create_methods_endpoint(role_path, NcObjectMethods.GET_SEQUENCE_ITEM.value)
return self._do_request(test, "PATCH", methods_endpoint, data={"argument": {"id": property_id, "index": index}})
return self._do_request(test, "PATCH", methods_endpoint,
json={"arguments": {"id": property_id, "index": index}})

def get_sequence_item_value(self, test, property_id, index, role_path, **kwargs):
return self.get_sequence_item(test, property, index, role_path, **kwargs)["value"]
return self.get_sequence_item(test, property_id, index, role_path, **kwargs)["value"]

def get_sequence_length(self, test, property_id, role_path, **kwargs):
"""Get sequence length. Raises NMOSTestException on error"""
methods_endpoint = self._create_methods_endpoint(role_path, NcObjectMethods.GET_SEQUENCE_LENGTH.value)
return self._do_request(test, "PATCH", methods_endpoint, data={"argument": {"id": property_id}})
return self._do_request(test, "PATCH", methods_endpoint, json={"arguments": {"id": property_id}})['value']

def get_member_descriptors(self, test, recurse, role_path, **kwargs):
"""Get BlockMemberDescritors for this block. Raises NMOSTestException on error"""
methods_endpoint = self._create_methods_endpoint(role_path, NcBlockMethods.GET_MEMBERS_DESCRIPTOR.value)
return self._do_request(test, "PATCH", methods_endpoint, data={"argument": {"recurse": recurse}})
return self._do_request(test, "PATCH", methods_endpoint, json={"arguments": {"recurse": recurse}})['value']

def find_members_by_path(self, test, path, role_path, **kwargs):
"""Query members based on role path. Raises NMOSTestException on error"""
methods_endpoint = self._create_methods_endpoint(role_path, NcBlockMethods.FIND_MEMBERS_BY_PATH.value)
return self._do_request(test, "PATCH", methods_endpoint, data={"argument": {"path": path}})
return self._do_request(test, "PATCH", methods_endpoint, json={"arguments": {"path": path}})['value']

def find_members_by_role(self, test, role, case_sensitive, match_whole_string, recurse, role_path, **kwargs):
"""Query members based on role. Raises NMOSTestException on error"""
methods_endpoint = self._create_methods_endpoint(role_path, NcBlockMethods.FIND_MEMBERS_BY_ROLE.value)
return self._do_request(test, "PATCH", methods_endpoint,
data={"argument": {"role": role,
"caseSensitive": case_sensitive,
"matchWholeString": match_whole_string,
"recurse": recurse}})
json={"arguments": {"role": role,
"caseSensitive": case_sensitive,
"matchWholeString": match_whole_string,
"recurse": recurse}})['value']

def find_members_by_class_id(self, test, class_id, include_derived, recurse, role_path, **kwargs):
"""Query members based on class id. Raises NMOSTestException on error"""
methods_endpoint = self._create_methods_endpoint(role_path, NcBlockMethods.FIND_MEMBERS_BY_CLASS_ID.value)
return self._do_request(test, "PATCH", methods_endpoint,
data={"argument": {"classId": class_id,
"includeDerived": include_derived,
"recurse": recurse}})
json={"arguments": {"classId": class_id,
"includeDerived": include_derived,
"recurse": recurse}})['value']

def get_control_class(self, test, class_id, include_inherited, role_path, **kwargs):
"""Query Class Manager for control class. Raises NMOSTestException on error"""
methods_endpoint = self._create_methods_endpoint(role_path, NcClassManagerMethods.GET_CONTROL_CLASS.value)
return self._do_request(test, "PATCH", methods_endpoint,
data={"argument": {"classId": class_id,
"includeInherited": include_inherited}})
json={"arguments": {"classId": class_id,
"includeInherited": include_inherited}})['value']

def get_datatype(self, test, name, include_inherited, role_path, **kwargs):
"""Query Class Manager for datatype. Raises NMOSTestException on error"""
methods_endpoint = self._create_methods_endpoint(role_path, NcClassManagerMethods.GET_DATATYPE.value)
return self._do_request(test, "PATCH", methods_endpoint,
data={"argument": {"name": name,
"includeInherited": include_inherited}})
json={"arguments": {"name": name,
"includeInherited": include_inherited}})['value']

# end of overridden functions

0 comments on commit 37301ea

Please sign in to comment.