mirror of
				https://github.com/graphql-python/graphene.git
				synced 2025-10-31 07:57:26 +03:00 
			
		
		
		
	Improved abstract type
This commit is contained in:
		
							parent
							
								
									8bac3dc9e5
								
							
						
					
					
						commit
						85d3145862
					
				|  | @ -1,9 +1,12 @@ | |||
| from ..pyutils.init_subclass import InitSubclassMeta | ||||
| from ..utils.subclass_with_meta import SubclassWithMeta | ||||
| from ..utils.deprecated import warn_deprecation | ||||
| 
 | ||||
| 
 | ||||
| class AbstractType(object): | ||||
|     __metaclass__ = InitSubclassMeta | ||||
| class AbstractType(SubclassWithMeta): | ||||
| 
 | ||||
|     def __init_subclass__(cls, *args, **kwargs): | ||||
|         print("Abstract type is deprecated") | ||||
|         # super(AbstractType, cls).__init_subclass__(*args, **kwargs) | ||||
|         warn_deprecation( | ||||
|             "Abstract type is deprecated, please use normal object inheritance instead.\n" | ||||
|             "See more: https://github.com/graphql-python/graphene/blob/2.0/UPGRADE-v2.0.md#deprecations" | ||||
|         ) | ||||
|         super(AbstractType, cls).__init_subclass__(*args, **kwargs) | ||||
|  |  | |||
							
								
								
									
										40
									
								
								graphene/types/tests/test_abstracttype.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								graphene/types/tests/test_abstracttype.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| import pytest | ||||
| 
 | ||||
| from ..objecttype import ObjectType | ||||
| from ..unmountedtype import UnmountedType | ||||
| from ..abstracttype import AbstractType | ||||
| from ..field import Field | ||||
| from ...utils import deprecated | ||||
| 
 | ||||
| 
 | ||||
| class MyType(ObjectType): | ||||
|     pass | ||||
| 
 | ||||
| 
 | ||||
| class MyScalar(UnmountedType): | ||||
| 
 | ||||
|     def get_type(self): | ||||
|         return MyType | ||||
| 
 | ||||
| 
 | ||||
| def test_abstract_objecttype_warn_deprecation(mocker): | ||||
|     mocker.patch.object(deprecated, 'warn_deprecation') | ||||
| 
 | ||||
|     class MyAbstractType(AbstractType): | ||||
|         field1 = MyScalar() | ||||
| 
 | ||||
|     deprecated.warn_deprecation.assert_called_once() | ||||
| 
 | ||||
| 
 | ||||
| def test_generate_objecttype_inherit_abstracttype(): | ||||
|     class MyAbstractType(AbstractType): | ||||
|         field1 = MyScalar() | ||||
| 
 | ||||
|     class MyObjectType(ObjectType, MyAbstractType): | ||||
|         field2 = MyScalar() | ||||
| 
 | ||||
|     assert MyObjectType._meta.description is None | ||||
|     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] | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user