mirror of
				https://github.com/graphql-python/graphene.git
				synced 2025-11-04 09:57:41 +03:00 
			
		
		
		
	Added tests.
This commit is contained in:
		
							parent
							
								
									c01a9b1843
								
							
						
					
					
						commit
						09969355fa
					
				| 
						 | 
					@ -47,7 +47,7 @@ class GlobalID(Field):
 | 
				
			||||||
        return node.to_global_id(parent_type_name, type_id)  # root._meta.name
 | 
					        return node.to_global_id(parent_type_name, type_id)  # root._meta.name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_resolver(self, parent_resolver):
 | 
					    def get_resolver(self, parent_resolver):
 | 
				
			||||||
        return partial(self.id_resolver, parent_resolver, self.node, parent_type_name=self._parent_type_name)
 | 
					        return partial(self.id_resolver, parent_resolver, self.node, parent_type_name=self.parent_type_name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class NodeMeta(InterfaceMeta):
 | 
					class NodeMeta(InterfaceMeta):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,8 @@
 | 
				
			||||||
from ..node import Node, GlobalID
 | 
					from graphql_relay import to_global_id
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from ...types import NonNull, ID
 | 
					from ..node import Node, GlobalID
 | 
				
			||||||
 | 
					from ...types import NonNull, ID, ObjectType, String
 | 
				
			||||||
 | 
					from ...types.definitions import GrapheneObjectType
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CustomNode(Node):
 | 
					class CustomNode(Node):
 | 
				
			||||||
| 
						 | 
					@ -9,6 +11,26 @@ class CustomNode(Node):
 | 
				
			||||||
        name = 'Node'
 | 
					        name = 'Node'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class User(ObjectType):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    class Meta:
 | 
				
			||||||
 | 
					        interfaces = [CustomNode]
 | 
				
			||||||
 | 
					    name = String()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Info(object):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self, parent_type):
 | 
				
			||||||
 | 
					        self.parent_type = GrapheneObjectType(
 | 
				
			||||||
 | 
					            graphene_type=parent_type,
 | 
				
			||||||
 | 
					            name=parent_type._meta.name,
 | 
				
			||||||
 | 
					            description=parent_type._meta.description,
 | 
				
			||||||
 | 
					            fields=None,
 | 
				
			||||||
 | 
					            is_type_of=parent_type.is_type_of,
 | 
				
			||||||
 | 
					            interfaces=None
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def test_global_id_defaults_to_required_and_node():
 | 
					def test_global_id_defaults_to_required_and_node():
 | 
				
			||||||
    gid = GlobalID()
 | 
					    gid = GlobalID()
 | 
				
			||||||
    assert isinstance(gid.type, NonNull)
 | 
					    assert isinstance(gid.type, NonNull)
 | 
				
			||||||
| 
						 | 
					@ -20,3 +42,19 @@ def test_global_id_allows_overriding_of_node_and_required():
 | 
				
			||||||
    gid = GlobalID(node=CustomNode, required=False)
 | 
					    gid = GlobalID(node=CustomNode, required=False)
 | 
				
			||||||
    assert gid.type == ID
 | 
					    assert gid.type == ID
 | 
				
			||||||
    assert gid.node == CustomNode
 | 
					    assert gid.node == CustomNode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def test_global_id_defaults_to_info_parent_type():
 | 
				
			||||||
 | 
					    my_id = '1'
 | 
				
			||||||
 | 
					    gid = GlobalID()
 | 
				
			||||||
 | 
					    id_resolver = gid.get_resolver(lambda *_: my_id)
 | 
				
			||||||
 | 
					    my_global_id = id_resolver(None, None, None, Info(User))
 | 
				
			||||||
 | 
					    assert my_global_id == to_global_id(User._meta.name, my_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def test_global_id_allows_setting_customer_parent_type():
 | 
				
			||||||
 | 
					    my_id = '1'
 | 
				
			||||||
 | 
					    gid = GlobalID(parent_type=User)
 | 
				
			||||||
 | 
					    id_resolver = gid.get_resolver(lambda *_: my_id)
 | 
				
			||||||
 | 
					    my_global_id = id_resolver(None, None, None, None)
 | 
				
			||||||
 | 
					    assert my_global_id == to_global_id(User._meta.name, my_id)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user