def test_fails_to_format_classmethod_name(self): e_expected = AglyphError( "%r does not have an importable dotted name" % dummy.ModuleClass.classmethod_factory) assertRaisesWithMessage( self, e_expected, format_dotted_name, dummy.ModuleClass.classmethod_factory)
def test_register_fails_on_nonimportable_object(self): builder = self._builder_type( _MockContext(), dummy.ModuleClass.NestedClass) e_expected = AglyphError( "%r does not have an importable dotted name" % dummy.ModuleClass.NestedClass) assertRaisesWithMessage(self, e_expected, builder.register)
def test_unique_id_cannot_be_empty(self): # use __class__ so test is reusable for Template & Component e_expected = ValueError( "%s unique ID must not be None or empty" % name_of(self._support.__class__)) assertRaisesWithMessage( self, e_expected, self._support.__class__, "")
def test_fails_to_format_property_name(self): # property doesn't have __module__, __qualname__, or __name__ e_expected = AglyphError( "%r does not have an importable dotted name" % dummy.ModuleClass.prop) assertRaisesWithMessage( self, e_expected, format_dotted_name, dummy.ModuleClass.prop)
def test_staticmethod(self): e_expected = AglyphError( "%r does not have an importable dotted name" % dummy.ModuleClass.staticmethod_factory) assertRaisesWithMessage( self, e_expected, Reference, dummy.ModuleClass.staticmethod_factory)
def test_rejects_unrecognized_strategy(self): e_expected = ValueError( "unrecognized assembly strategy 'unrecognized'") assertRaisesWithMessage(self, e_expected, Component, "test", strategy="unrecognized")
def test_factory_name_and_member_name_are_mutually_exclusive(self): e_expected = AglyphError( "only one of factory_name or member_name may be specified") assertRaisesWithMessage(self, e_expected, Component, "test", factory_name="factory", member_name="member")
def test_context_id_cannot_be_empty(self): e_expected = AglyphError( "%s ID must not be None or empty" % name_of(self._context.__class__)) assertRaisesWithMessage(self, e_expected, self._context.__class__, "")
def test_template_id_is_required(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = ValueError("Template unique ID must not be None or empty") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_attribute_rejects_multiple_children(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = AglyphError( "<attribute> must contain exactly one child element; " "found attribute/str, attribute/int") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_fails_to_identify_instance(self): # instance doesn't have __qualname__ or __name__ instance = dummy.ModuleClass(None) e_expected = AglyphError("%r does not have an importable dotted name" % instance) assertRaisesWithMessage(self, e_expected, _identify, instance)
def test_nonimportable_function(self): nested_function = dummy.outer_function() e_expected = AglyphError( "%r does not have an importable dotted name" % nested_function) assertRaisesWithMessage(self, e_expected, Reference, nested_function)
def test_fails_to_format_bound_function_name(self): bound_function = dummy.MODULE_MEMBER.method e_expected = AglyphError( "%r does not have an importable dotted name" % bound_function) assertRaisesWithMessage( self, e_expected, format_dotted_name, bound_function)
def test_attribute_name_cannot_be_empty(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = AglyphError( "attribute/@name is required and cannot be empty") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_process_attributes_unexpected_children(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = AglyphError("unexpected element: attributes/unexpected") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_dict_item_value_unexpected_children(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = AglyphError("unexpected element: value/unexpected") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_dict_item_key_rejects_multiple_children(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = AglyphError( "<key> must contain exactly one child element; " "found key/str, key/int") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_parse_dict_item_unexpected_children(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = AglyphError( "expected item/key, item/value; found item/unexpected") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_arg_keyword_cannot_be_empty(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = AglyphError("arg/@keyword cannot be empty") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_bound_method(self): bound_method = dummy.ModuleClass(None).method e_expected = AglyphError("%r does not have an importable dotted name" % bound_method) assertRaisesWithMessage(self, e_expected, Reference, bound_method)
def test_builtin_object(self): e_expected = AglyphError("79 does not have an importable dotted name") assertRaisesWithMessage(self, e_expected, Reference, 79)
def test_attribute_cannot_be_empty(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = AglyphError( "<attribute> must contain exactly one child element; " "found no children") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_fails_to_format_name_for_none(self): # None doesn't have __module__, __qualname__, or __name__ e_expected = AglyphError( "%r does not have an importable dotted name" % None) assertRaisesWithMessage(self, e_expected, format_dotted_name, None)
def test_fails_to_identify_classmethod(self): e_expected = AglyphError("%r does not have an importable dotted name" % dummy.ModuleClass.classmethod_factory) assertRaisesWithMessage(self, e_expected, _identify, dummy.ModuleClass.classmethod_factory)
def test_context_id_cannot_be_empty(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = AglyphError("XMLContext ID must not be None or empty") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_bound_method(self): bound_method = dummy.ModuleClass(None).method e_expected = AglyphError( "%r does not have an importable dotted name" % bound_method) assertRaisesWithMessage(self, e_expected, Reference, bound_method)
def test_template_id_is_required(self): stream = bytebuf(self._uresource.encode("utf-8")) e_expected = ValueError( "Template unique ID must not be None or empty") assertRaisesWithMessage(self, e_expected, XMLContext, stream)
def test_detects_circular_dependency(self): e = AglyphError("circular dependency detected: " "circular-2 > circular-3 > circular-1 > circular-2") assertRaisesWithMessage(self, e, self._assembler.assemble, "circular-2")
def test_fails_to_format_nested_class_name(self): e_expected = AglyphError("%r does not have an importable dotted name" % dummy.ModuleClass.NestedClass) assertRaisesWithMessage(self, e_expected, format_dotted_name, dummy.ModuleClass.NestedClass)
def test_fails_to_format_staticmethod_name(self): e_expected = AglyphError("%r does not have an importable dotted name" % dummy.ModuleClass.staticmethod_factory) assertRaisesWithMessage(self, e_expected, format_dotted_name, dummy.ModuleClass.staticmethod_factory)
def test_unique_id_cannot_be_empty(self): # use __class__ so test is reusable for Template & Component e_expected = ValueError("%s unique ID must not be None or empty" % name_of(self._support.__class__)) assertRaisesWithMessage(self, e_expected, self._support.__class__, "")
def test_nonimportable_function(self): nested_function = dummy.outer_function() e_expected = AglyphError("%r does not have an importable dotted name" % nested_function) assertRaisesWithMessage(self, e_expected, Reference, nested_function)
def test_detects_circular_dependency(self): e = AglyphError( "circular dependency detected: " "circular-2 > circular-3 > circular-1 > circular-2") assertRaisesWithMessage( self, e, self._assembler.assemble, "circular-2")
def test_nonimportable_class(self): e_expected = AglyphError("%r does not have an importable dotted name" % dummy.ModuleClass.NestedClass) assertRaisesWithMessage(self, e_expected, Reference, dummy.ModuleClass.NestedClass)
def test_user_object(self): obj = dummy.ModuleClass(None) e_expected = AglyphError( "%r does not have an importable dotted name" % obj) assertRaisesWithMessage(self, e_expected, Reference, obj)
def test_user_object(self): obj = dummy.ModuleClass(None) e_expected = AglyphError("%r does not have an importable dotted name" % obj) assertRaisesWithMessage(self, e_expected, Reference, obj)
def test_staticmethod(self): e_expected = AglyphError("%r does not have an importable dotted name" % dummy.ModuleClass.staticmethod_factory) assertRaisesWithMessage(self, e_expected, Reference, dummy.ModuleClass.staticmethod_factory)
def test_fails_to_format_nested_function_name(self): nested_function = dummy.outer_function() e_expected = AglyphError( "%r does not have an importable dotted name" % nested_function) assertRaisesWithMessage( self, e_expected, format_dotted_name, nested_function)
def test_fails_to_identify_property(self): # property doesn't have __module__, __qualname__, or __name__ e_expected = AglyphError("%r does not have an importable dotted name" % dummy.ModuleClass.prop) assertRaisesWithMessage(self, e_expected, _identify, dummy.ModuleClass.prop)
def test_nonimportable_class(self): e_expected = AglyphError( "%r does not have an importable dotted name" % dummy.ModuleClass.NestedClass) assertRaisesWithMessage( self, e_expected, Reference, dummy.ModuleClass.NestedClass)
def test_fails_to_format_instance_name(self): # instance doesn't have __qualname__ or __name__ instance = dummy.ModuleClass(None) e_expected = AglyphError( "%r does not have an importable dotted name" % instance) assertRaisesWithMessage(self, e_expected, format_dotted_name, instance)
def test_fails_to_identify_none(self): # None doesn't have __module__, __qualname__, or __name__ e_expected = AglyphError("%r does not have an importable dotted name" % None) assertRaisesWithMessage(self, e_expected, _identify, None)
def test_fails_to_identify_nested_function(self): nested_function = dummy.outer_function() e_expected = AglyphError("%r does not have an importable dotted name" % nested_function) assertRaisesWithMessage(self, e_expected, _identify, nested_function)
def test_fails_to_identify_bound_function(self): bound_function = dummy.MODULE_MEMBER.method e_expected = AglyphError("%r does not have an importable dotted name" % bound_function) assertRaisesWithMessage(self, e_expected, _identify, bound_function)