Skip to content

Commit

Permalink
Move get_manager out of NcBlock
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathan-r-thorpe committed Aug 4, 2023
1 parent 6af4df6 commit 4dabde7
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 32 deletions.
13 changes: 0 additions & 13 deletions nmostesting/IS12Utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -564,19 +564,6 @@ def get_oids(self, root=True):
oids += child_object.get_oids(False)
return oids

def get_manager(self, test, spec_branch, class_id):
members = self.find_members_by_class_id(class_id, include_derived=True)

spec_link = "https://specs.amwa.tv/ms-05-02/branches/{}/docs/Managers.html".format(spec_branch)

if len(members) == 0:
raise NMOSTestException(test.FAIL("Manager not found in Root Block.", spec_link))

if len(members) > 1:
raise NMOSTestException(test.FAIL("Manager MUST be a singleton.", spec_link))

return members[0]

# NcBlock Methods
def get_member_descriptors(self, recurse=False):
query_results = []
Expand Down
34 changes: 15 additions & 19 deletions nmostesting/suites/IS1201Test.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,25 +236,21 @@ def query_device_model(self, test):
"root")
return self.device_model

def query_class_manager(self, test):
"""Query class manager to use as source of ground truths"""

def get_manager(self, test, class_id):
self.create_ncp_socket(test)
device_model = self.query_device_model(test)
members = device_model.find_members_by_class_id(class_id, include_derived=True)

return device_model.get_manager(test,
self.apis[CONTROL_API_KEY]["spec_branch"],
StandardClassIds.NCCLASSMANAGER.value)
spec_link = "https://specs.amwa.tv/ms-05-02/branches/{}/docs/Managers.html"\
.format(self.apis[CONTROL_API_KEY]["spec_branch"])

def query_device_manager(self, test):
"""Query class manager to use as source of ground truths"""
if len(members) == 0:
raise NMOSTestException(test.FAIL("Manager not found in Root Block.", spec_link))

self.create_ncp_socket(test)
device_model = self.query_device_model(test)
if len(members) > 1:
raise NMOSTestException(test.FAIL("Manager MUST be a singleton.", spec_link))

return device_model.get_manager(test,
self.apis[CONTROL_API_KEY]["spec_branch"],
StandardClassIds.NCDEVICEMANAGER.value)
return members[0]

def auto_tests(self):
"""Automatically validate all standard datatypes and control classes. Returns [test result array]"""
Expand All @@ -265,7 +261,7 @@ def auto_tests(self):

self.create_ncp_socket(test)

class_manager = self.query_class_manager(test)
class_manager = self.get_manager(test, StandardClassIds.NCCLASSMANAGER.value)

results += self.validate_model_definitions(class_manager.class_descriptors,
'NcClassDescriptor',
Expand Down Expand Up @@ -532,7 +528,7 @@ def check_block(self, test, block, class_descriptors, datatype_schemas, context=
def check_device_model(self, test):
if not self.device_model_checked:
self.create_ncp_socket(test)
class_manager = self.query_class_manager(test)
class_manager = self.get_manager(test, StandardClassIds.NCCLASSMANAGER.value)
device_model = self.query_device_model(test)

# Create JSON schemas for the queried datatypes
Expand Down Expand Up @@ -719,7 +715,7 @@ def test_12(self, test):
spec_link = "https://specs.amwa.tv/ms-05-02/branches/{}/docs/Managers.html"\
.format(self.apis[CONTROL_API_KEY]["spec_branch"])

class_manager = self.query_class_manager(test)
class_manager = self.get_manager(test, StandardClassIds.NCCLASSMANAGER.value)

class_id_str = ".".join(map(str, StandardClassIds.NCCLASSMANAGER.value))
class_descriptor = self.reference_class_descriptors[class_id_str]
Expand All @@ -737,7 +733,7 @@ def test_13(self, test):
spec_link = "https://specs.amwa.tv/ms-05-02/branches/{}/docs/Managers.html"\
.format(self.apis[CONTROL_API_KEY]["spec_branch"])

device_manager = self.query_device_manager(test)
device_manager = self.get_manager(test, StandardClassIds.NCDEVICEMANAGER.value)

class_id_str = ".".join(map(str, StandardClassIds.NCDEVICEMANAGER.value))
class_descriptor = self.reference_class_descriptors[class_id_str]
Expand All @@ -762,7 +758,7 @@ def test_14(self, test):
# MS-05-02 (93) Where the functionality of a device uses control classes and datatypes listed in this
# specification it MUST comply with the model definitions published

class_manager = self.query_class_manager(test)
class_manager = self.get_manager(test, StandardClassIds.NCCLASSMANAGER.value)

for _, class_descriptor in class_manager.class_descriptors.items():
for include_inherited in [False, True]:
Expand All @@ -785,7 +781,7 @@ def test_15(self, test):
# MS-05-02 (94) Where the functionality of a device uses control classes and datatypes listed in this
# specification it MUST comply with the model definitions published

class_manager = self.query_class_manager(test)
class_manager = self.get_manager(test, StandardClassIds.NCCLASSMANAGER.value)

for _, datatype_descriptor in class_manager.datatype_descriptors.items():
for include_inherited in [False, True]:
Expand Down

0 comments on commit 4dabde7

Please sign in to comment.