Skip to content

Commit d9163d0

Browse files
committed
test: Add corresponding test cases.
1 parent 9231c19 commit d9163d0

File tree

3 files changed

+86
-2
lines changed

3 files changed

+86
-2
lines changed

graphene_mongo/tests/test_relay_query.py

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
from .types import (ArticleNode, ArticleType,
1010
EditorNode, EditorType,
1111
PlayerNode, PlayerType,
12-
ReporterNode, ReporterType)
12+
ReporterNode, ReporterType,
13+
ChildNode, ChildType)
1314
from ..fields import MongoengineConnectionField
1415

1516
setup_fixtures()
@@ -294,6 +295,43 @@ class Query(graphene.ObjectType):
294295
assert result.data == expected
295296

296297

298+
def test_should_filter_through_inheritance():
299+
300+
class Query(graphene.ObjectType):
301+
node = Node.Field()
302+
children = MongoengineConnectionField(ChildNode)
303+
304+
query = '''
305+
query ChildrenQuery {
306+
children(bar: "bar") {
307+
edges {
308+
node {
309+
bar,
310+
baz
311+
}
312+
}
313+
}
314+
}
315+
'''
316+
expected = {
317+
'children': {
318+
'edges': [
319+
{
320+
'node': {
321+
'bar': 'bar',
322+
'baz': 'baz',
323+
}
324+
}
325+
]
326+
}
327+
}
328+
schema = graphene.Schema(query=Query)
329+
result = schema.execute(query)
330+
assert not result.errors
331+
assert json.dumps(result.data, sort_keys=True) == json.dumps(
332+
expected, sort_keys=True)
333+
334+
297335
def test_should_get_node_by_id():
298336
# Notes: https://goo.gl/hMNRgs
299337
class Query(graphene.ObjectType):

graphene_mongo/tests/test_types.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from .. import registry
77
from ..types import MongoengineObjectType
88
from .models import Article, EmbeddedArticle, Reporter
9+
from .models import Parent, Child
910
from .utils import with_local_registry
1011

1112
registry.reset_global_registry()
@@ -28,11 +29,26 @@ class Meta:
2829
interfaces = (Node,)
2930

3031
class Character(MongoengineObjectType):
32+
3133
class Meta:
3234
model = Reporter
3335
registry = registry.get_global_registry()
3436

3537

38+
class Dad(MongoengineObjectType):
39+
40+
class Meta:
41+
model = Parent
42+
registry = registry.get_global_registry()
43+
44+
45+
class Son(MongoengineObjectType):
46+
47+
class Meta:
48+
model = Child
49+
registry = registry.get_global_registry()
50+
51+
3652
def test_mongoengine_interface():
3753
assert issubclass(Node, Interface)
3854
assert issubclass(Node, Node)
@@ -53,6 +69,9 @@ def test_objecttype_registered():
5369
])
5470

5571

72+
def test_mongoengine_inheritance():
73+
assert issubclass(Son._meta.model, Dad._meta.model)
74+
5675
def test_node_replacedfield():
5776
idfield = Human._meta.fields['pub_date']
5877
assert isinstance(idfield, Field)

graphene_mongo/tests/types.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
from graphene.relay import Node
22

33
from ..types import MongoengineObjectType
4-
from .models import Article, Editor, EmbeddedArticle, Player, Reporter
4+
from .models import (
5+
Article, Editor, EmbeddedArticle, Player, Reporter,
6+
Parent, Child
7+
)
58

69

710
class EditorType(MongoengineObjectType):
@@ -34,6 +37,18 @@ class Meta:
3437
model = Reporter
3538

3639

40+
class ParentType(MongoengineObjectType):
41+
42+
class Meta:
43+
model = Parent
44+
45+
46+
class ChildType(MongoengineObjectType):
47+
48+
class Meta:
49+
model = Child
50+
51+
3752
class ArticleNode(MongoengineObjectType):
3853

3954
class Meta:
@@ -68,3 +83,15 @@ class Meta:
6883
model = Reporter
6984
interfaces = (Node,)
7085

86+
87+
class ParentNode(MongoengineObjectType):
88+
89+
class Meta:
90+
model = Parent
91+
interfaces = (Node,)
92+
93+
94+
class ChildNode(MongoengineObjectType):
95+
class Meta:
96+
model = Child
97+
interfaces = (Node,)

0 commit comments

Comments
 (0)