mirror of
				https://github.com/graphql-python/graphene.git
				synced 2025-10-30 23:47:55 +03:00 
			
		
		
		
	Fixed str on abstract types. Improved repr
This commit is contained in:
		
							parent
							
								
									415b71f730
								
							
						
					
					
						commit
						562cafc14f
					
				|  | @ -21,7 +21,7 @@ class BaseOptions(object): | |||
|             raise Exception("Can't modify frozen Options {0}".format(self)) | ||||
| 
 | ||||
|     def __repr__(self): | ||||
|         return "<{} type={}>".format(self.__class__.__name__, self.class_type.__name__) | ||||
|         return "<{} name={}>".format(self.__class__.__name__, repr(self.name)) | ||||
| 
 | ||||
| 
 | ||||
| class BaseType(SubclassWithMeta): | ||||
|  |  | |||
|  | @ -44,6 +44,8 @@ def test_generate_objecttype(): | |||
|     assert MyObjectType._meta.description == "Documentation" | ||||
|     assert MyObjectType._meta.interfaces == tuple() | ||||
|     assert MyObjectType._meta.fields == {} | ||||
|     assert repr( | ||||
|         MyObjectType) == "<MyObjectType meta=<ObjectTypeOptions name='MyObjectType'>>" | ||||
| 
 | ||||
| 
 | ||||
| def test_generate_objecttype_with_meta(): | ||||
|  | @ -65,7 +67,6 @@ def test_generate_lazy_objecttype(): | |||
| 
 | ||||
|     class InnerObjectType(ObjectType): | ||||
|         field = Field(MyType) | ||||
|      | ||||
| 
 | ||||
|     assert MyObjectType._meta.name == "MyObjectType" | ||||
|     example_field = MyObjectType._meta.fields['example'] | ||||
|  | @ -115,7 +116,8 @@ def test_generate_objecttype_inherit_abstracttype(): | |||
|     assert MyObjectType._meta.interfaces == () | ||||
|     assert MyObjectType._meta.name == "MyObjectType" | ||||
|     assert list(MyObjectType._meta.fields.keys()) == ['field1', 'field2'] | ||||
|     assert list(map(type, MyObjectType._meta.fields.values())) == [Field, Field] | ||||
|     assert list(map(type, MyObjectType._meta.fields.values())) == [ | ||||
|         Field, Field] | ||||
| 
 | ||||
| 
 | ||||
| def test_generate_objecttype_inherit_abstracttype_reversed(): | ||||
|  | @ -129,7 +131,8 @@ def test_generate_objecttype_inherit_abstracttype_reversed(): | |||
|     assert MyObjectType._meta.interfaces == () | ||||
|     assert MyObjectType._meta.name == "MyObjectType" | ||||
|     assert list(MyObjectType._meta.fields.keys()) == ['field1', 'field2'] | ||||
|     assert list(map(type, MyObjectType._meta.fields.values())) == [Field, Field] | ||||
|     assert list(map(type, MyObjectType._meta.fields.values())) == [ | ||||
|         Field, Field] | ||||
| 
 | ||||
| 
 | ||||
| def test_generate_objecttype_unmountedtype(): | ||||
|  | @ -145,7 +148,8 @@ def test_parent_container_get_fields(): | |||
| 
 | ||||
| 
 | ||||
| def test_parent_container_interface_get_fields(): | ||||
|     assert list(ContainerWithInterface._meta.fields.keys()) == ['ifield', 'field1', 'field2'] | ||||
|     assert list(ContainerWithInterface._meta.fields.keys()) == [ | ||||
|         'ifield', 'field1', 'field2'] | ||||
| 
 | ||||
| 
 | ||||
| def test_objecttype_as_container_only_args(): | ||||
|  | @ -182,7 +186,8 @@ def test_objecttype_as_container_invalid_kwargs(): | |||
|     with pytest.raises(TypeError) as excinfo: | ||||
|         Container(unexisting_field="3") | ||||
| 
 | ||||
|     assert "'unexisting_field' is an invalid keyword argument for Container" == str(excinfo.value) | ||||
|     assert "'unexisting_field' is an invalid keyword argument for Container" == str( | ||||
|         excinfo.value) | ||||
| 
 | ||||
| 
 | ||||
| def test_objecttype_container_benchmark(benchmark): | ||||
|  | @ -238,7 +243,6 @@ def test_objecttype_no_fields_output(): | |||
|         def resolve_user(self, info): | ||||
|             return User() | ||||
| 
 | ||||
| 
 | ||||
|     schema = Schema(query=Query) | ||||
|     result = schema.execute(''' query basequery { | ||||
|         user { | ||||
|  | @ -252,3 +256,12 @@ def test_objecttype_no_fields_output(): | |||
|             'name': None, | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| def test_abstract_objecttype_can_str(): | ||||
|     class MyObjectType(ObjectType): | ||||
|         class Meta: | ||||
|             abstract = True | ||||
|         field = MyScalar() | ||||
| 
 | ||||
|     assert str(MyObjectType) == "MyObjectType" | ||||
|  |  | |||
|  | @ -6,9 +6,15 @@ from .props import props | |||
| 
 | ||||
| 
 | ||||
| class SubclassWithMeta_Meta(InitSubclassMeta): | ||||
|     _meta = None | ||||
| 
 | ||||
|     def __str__(cls): | ||||
|         if cls._meta: | ||||
|             return cls._meta.name | ||||
|         return cls.__name__ | ||||
| 
 | ||||
|     def __repr__(cls): | ||||
|         return cls._meta.name | ||||
|         return "<{} meta={}>".format(cls.__name__, repr(cls._meta)) | ||||
| 
 | ||||
| 
 | ||||
| class SubclassWithMeta(six.with_metaclass(SubclassWithMeta_Meta)): | ||||
|  | @ -24,7 +30,8 @@ class SubclassWithMeta(six.with_metaclass(SubclassWithMeta_Meta)): | |||
|             elif isclass(_Meta): | ||||
|                 _meta_props = props(_Meta) | ||||
|             else: | ||||
|                 raise Exception("Meta have to be either a class or a dict. Received {}".format(_Meta)) | ||||
|                 raise Exception( | ||||
|                     "Meta have to be either a class or a dict. Received {}".format(_Meta)) | ||||
|             delattr(cls, "Meta") | ||||
|         options = dict(meta_options, **_meta_props) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user