Skip to content

Commit e7a1317

Browse files
authored
Merge pull request #8 from graphql-python/refactor-test-case
Refactor test case
2 parents c171687 + 76d35d6 commit e7a1317

File tree

11 files changed

+83
-84
lines changed

11 files changed

+83
-84
lines changed

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ clean:
88
@find . -name "*.pyc" -delete
99
@find . -name "__pycache__" -delete
1010

11-
test: clean
11+
lint:
12+
@flake8 graphene_mongo
13+
14+
test: clean lint
1215
py.test --cov=graphene_mongo
1316

1417
register-pypitest:

graphene_mongo/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99

1010
__all__ = [
1111
'__version__',
12-
'MongoengineObjectType'
12+
'MongoengineObjectType',
13+
'MongoengineConnectionField'
1314
]
14-

graphene_mongo/converter.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
from graphene import (ID, Boolean, Dynamic, Enum, Field, Float, Int, List,
2-
NonNull, String, UUID, is_node)
3-
from graphene.types.datetime import DateTime, Time
1+
from graphene import (ID, Boolean, Dynamic, Field, Float, Int, List,
2+
NonNull, String, is_node)
43
from graphene.types.json import JSONString
5-
from graphene.utils.str_converters import to_camel_case, to_const
6-
from graphql import assert_valid_name
74

85
import mongoengine
96

@@ -66,9 +63,9 @@ def convert_postgres_array_to_list(field, registry=None):
6663
if isinstance(base_type, (Dynamic)):
6764
base_type = base_type.get_type()._type
6865
if is_node(base_type):
69-
return MongoengineConnectionField(base_type)
66+
return MongoengineConnectionField(base_type)
7067
elif not isinstance(base_type, (List, NonNull)) \
71-
and not isinstance(field.field, mongoengine.ReferenceField):
68+
and not isinstance(field.field, mongoengine.ReferenceField):
7269
base_type = type(base_type)
7370
return List(base_type, description=field.db_field, required=not field.null)
7471

@@ -86,4 +83,3 @@ def dynamic_type():
8683
return Field(_type)
8784

8885
return Dynamic(dynamic_type)
89-

graphene_mongo/fields.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@
33
from collections import OrderedDict
44
from functools import partial, reduce
55

6-
from graphene import Field
6+
from graphene import Field, List
77
from graphene.relay import ConnectionField
88
from graphene.relay.connection import PageInfo
99
from graphql_relay.connection.arrayconnection import connection_from_list_slice
1010
from graphene.types.argument import to_arguments
1111

12-
from .utils import maybe_queryset
13-
1412

13+
# noqa
1514
class MongoengineListField(Field):
1615

1716
def __init__(self, _type, *args, **kwargs):
@@ -21,9 +20,9 @@ def __init__(self, _type, *args, **kwargs):
2120
def model(self):
2221
return self.type.of_type._meta.node._meta.model
2322

24-
@staticmethod
25-
def list_resolver(resolver, root, info, **args):
26-
return maybe_queryset(resolver(root, info, **args))
23+
# @staticmethod
24+
# def list_resolver(resolver, root, info, **args):
25+
# return maybe_queryset(resolver(root, info, **args))
2726

2827
def get_resolver(self, parent_resolver):
2928
return partial(self.list_resolver, parent_resolver)
@@ -115,4 +114,3 @@ def connection_resolver(cls, resolver, connection, model, root, info, **args):
115114

116115
def get_resolver(self, parent_resolver):
117116
return partial(self.connection_resolver, parent_resolver, self.type, self.model)
118-

graphene_mongo/registry.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,3 @@ def get_global_registry():
2828
def reset_global_registry():
2929
global registry
3030
registry = None
31-

graphene_mongo/tests/test_query.py

Lines changed: 20 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,19 @@
55
from graphene.relay import Node
66

77
from .models import Article, Editor, EmbeddedArticle, Reporter
8-
from .utils import with_local_registry
8+
from .types import (ArticleNode, ArticleType,
9+
EditorNode, EditorType,
10+
ReporterNode, ReporterType)
911
from ..fields import MongoengineConnectionField
10-
from ..types import MongoengineObjectType
1112

1213

1314
def setup_fixtures():
1415
editor1 = Editor(first_name='Penny', last_name='Hardaway')
1516
editor1.save()
1617
editor2 = Editor(first_name='Grant', last_name='Hill')
1718
editor2.save()
19+
editor3 = Editor(first_name='Dennis', last_name='Rodman')
20+
editor3.save()
1821

1922
reporter = Reporter(first_name='Allen', last_name='Iverson',
2023
email='[email protected]', awards=['2010-mvp'])
@@ -28,11 +31,7 @@ def setup_fixtures():
2831
setup_fixtures()
2932

3033

31-
@with_local_registry
3234
def test_should_query_editor_well():
33-
class EditorType(MongoengineObjectType):
34-
class Meta:
35-
model = Editor
3635

3736
class Query(graphene.ObjectType):
3837
editor = graphene.Field(EditorType)
@@ -65,8 +64,11 @@ def resolve_editors(self, *args, **kwargs):
6564
}, {
6665
'firstName': 'Grant',
6766
'lastName': 'Hill'
67+
}, {
68+
'firstName': 'Dennis',
69+
'lastName': 'Rodman'
6870
}]
69-
}
71+
}
7072

7173
schema = graphene.Schema(query=Query)
7274
result = schema.execute(query)
@@ -75,15 +77,7 @@ def resolve_editors(self, *args, **kwargs):
7577
assert all(item in result.data['editors'] for item in expected['editors'])
7678

7779

78-
@with_local_registry
7980
def test_should_query_reporter_well():
80-
class ArticleType(MongoengineObjectType):
81-
class Meta:
82-
model = Article
83-
84-
class ReporterType(MongoengineObjectType):
85-
class Meta:
86-
model = Reporter
8781

8882
class Query(graphene.ObjectType):
8983
reporter = graphene.Field(ReporterType)
@@ -123,19 +117,7 @@ def resolve_reporter(self, *args, **kwargs):
123117
assert dict(result.data['reporter']) == expected['reporter']
124118

125119

126-
@with_local_registry
127120
def test_should_node():
128-
class ArticleNode(MongoengineObjectType):
129-
130-
class Meta:
131-
model = Article
132-
interfaces = (Node,)
133-
134-
class ReporterNode(MongoengineObjectType):
135-
136-
class Meta:
137-
model = Reporter
138-
interfaces = (Node,)
139121

140122
class Query(graphene.ObjectType):
141123
node = Node.Field()
@@ -188,13 +170,7 @@ def resolve_reporter(self, *args, **kwargs):
188170
assert dict(result.data['reporter']) == expected['reporter']
189171

190172

191-
@with_local_registry
192173
def test_should_connection_field():
193-
class EditorNode(MongoengineObjectType):
194-
195-
class Meta:
196-
model = Editor
197-
interfaces = (Node,)
198174

199175
class Query(graphene.ObjectType):
200176
node = Node.Field()
@@ -219,13 +195,20 @@ class Query(graphene.ObjectType):
219195
'node': {
220196
'firstName': 'Penny',
221197
'lastName': 'Hardaway'
222-
},
198+
}
223199
},
224200
{
225201
'node': {
226202
'firstName': 'Grant',
227203
'lastName': 'Hill'
228204
}
205+
206+
},
207+
{
208+
'node': {
209+
'firstName': 'Dennis',
210+
'lastName': 'Rodman'
211+
}
229212
}
230213
]
231214
}
@@ -236,14 +219,7 @@ class Query(graphene.ObjectType):
236219
assert dict(result.data['allEditors']) == expected['allEditors']
237220

238221

239-
@with_local_registry
240222
def test_should_mutate_well():
241-
class ArticleNode(MongoengineObjectType):
242-
243-
class Meta:
244-
model = Article
245-
interfaces = (Node,)
246-
247223

248224
class CreateArticle(graphene.Mutation):
249225

@@ -292,14 +268,7 @@ class Mutation(graphene.ObjectType):
292268
assert not result.errors
293269
assert result.data == expected
294270

295-
@with_local_registry
296271
def test_should_filter():
297-
class ArticleNode(MongoengineObjectType):
298-
299-
class Meta:
300-
model = Article
301-
interfaces = (Node,)
302-
filter_fields = ('headline',)
303272

304273
class Query(graphene.ObjectType):
305274
node = Node.Field()
@@ -333,7 +302,9 @@ class Query(graphene.ObjectType):
333302
assert result.data == expected
334303

335304

305+
def test_should_first_n():
306+
pass
307+
336308
# TODO:
337309
def test_should_paging():
338310
pass
339-

graphene_mongo/tests/types.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from graphene.relay import Node
2+
3+
from .models import Article, Editor, Reporter
4+
from ..types import MongoengineObjectType
5+
6+
7+
class EditorType(MongoengineObjectType):
8+
class Meta:
9+
model = Editor
10+
11+
12+
class ArticleType(MongoengineObjectType):
13+
class Meta:
14+
model = Article
15+
16+
class ReporterType(MongoengineObjectType):
17+
class Meta:
18+
model = Reporter
19+
20+
21+
class ArticleNode(MongoengineObjectType):
22+
23+
class Meta:
24+
model = Article
25+
interfaces = (Node,)
26+
27+
class EditorNode(MongoengineObjectType):
28+
29+
class Meta:
30+
model = Editor
31+
interfaces = (Node,)
32+
33+
34+
class ReporterNode(MongoengineObjectType):
35+
36+
class Meta:
37+
model = Reporter
38+
interfaces = (Node,)
39+

graphene_mongo/types.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from collections import OrderedDict
22

3-
from graphene import Field, ObjectType
3+
from graphene import Field
44
from graphene.relay import Connection, Node
55
from graphene.types.objecttype import ObjectType, ObjectTypeOptions
66
from graphene.types.utils import yank_fields_from_attrs
@@ -35,6 +35,7 @@ class MongoengineObjectTypeOptions(ObjectTypeOptions):
3535
connection = None # type: Type[Connection]
3636
filter_fields = ()
3737

38+
3839
class MongoengineObjectType(ObjectType):
3940

4041
@classmethod
@@ -97,17 +98,14 @@ def is_type_of(cls, root, info):
9798
).format(root))
9899
return isinstance(root, cls._meta.model)
99100

101+
# noqa
100102
@classmethod
101103
def get_node(cls, id, context, info):
102-
if isinstance(getattr(cls._meta.model, get_key_name(cls._meta.model)), NumberAttribute):
103-
return cls._meta.model.get(int(id))
104-
105104
return cls._meta.model.get(id)
106105

107106
def resolve_id(self, info):
108107
return str(self.id)
109108

110-
#@classmethod
111-
#def get_connection(cls):
112-
# return connection_for_type(cls)
113-
109+
# @classmethod
110+
# def get_connection(cls):
111+
# return connection_for_type(cls)

graphene_mongo/utils.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,6 @@ def is_valid_mongoengine_model(model):
2525
)
2626

2727

28-
def maybe_queryset(value):
29-
if isinstance(value, Manager):
30-
value = value.get_queryset()
31-
return value
32-
33-
3428
def import_single_dispatch():
3529
try:
3630
from functools import singledispatch
@@ -54,11 +48,11 @@ def import_single_dispatch():
5448
return singledispatch
5549

5650

51+
# noqa
5752
def get_type_for_document(schema, document):
5853
types = schema.types.values()
5954
for _type in types:
6055
type_document = hasattr(_type, '_meta') and getattr(
6156
_type._meta, 'document', None)
6257
if document == type_document:
6358
return _type
64-

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
coveralls==1.2.0
2+
flake8==3.5.0
23
graphene==2.0.1
34
iso8601==0.1.12
45
mongoengine==0.15.0

0 commit comments

Comments
 (0)