def test_doc_registration_no_handler_found(self): '''Validate failure of no handler is found''' DataObjectCache.register_class(SimpleDataObject) DataObjectCache.register_class(SimpleDataObject2) DataObjectCache.register_class(SimpleDataObject3) DataObjectCache.register_class(SimpleDataObject4) # First ensure it works as expected. xml_elem = etree.Element("SimpleDataObject", name="handled") class_obj = DataObjectCache.find_class_to_handle(xml_elem) self.assertEqual(class_obj, SimpleDataObject) # Now ensure that it fails when expected. xml_elem_fail = etree.Element("not_handled", name="not_handled_name") class_obj = DataObjectCache.find_class_to_handle(xml_elem_fail) self.assertEqual(class_obj, None)
def test_doc_registration_simple_data_object(self): '''Validate registration and selection of a single class''' try: DataObjectCache.register_class(SimpleDataObject) except (TypeError, ValueError): self.fail("Failed to register SimpleDataObject!") # Test that it's actually registered and will correclty return class. simple = SimpleDataObject("TestSimple") xml_elem = simple.to_xml() class_obj = DataObjectCache.find_class_to_handle(xml_elem) self.assertEqual(class_obj, SimpleDataObject, str(class_obj))
def test_doc_registration_multiple_handlers_highest_prio_selected(self): '''Validate highest priority class is selected when several handlers''' DataObjectCache.register_class(SimpleDataObjectSameTagHighPrio, priority=30) DataObjectCache.register_class(SimpleDataObjectSameTagNormPrio, priority=50) xml_elem = etree.Element(COMMON_TAG, name="some name") class_obj = DataObjectCache.find_class_to_handle(xml_elem) self.assertEqual(class_obj, SimpleDataObjectSameTagHighPrio)