Skip to content

Commit 31812db

Browse files
committed
feat: Add advanced_type for PointType and fix test_converter
1 parent 54bdb45 commit 31812db

File tree

3 files changed

+25
-47
lines changed

3 files changed

+25
-47
lines changed

graphene_mongo/converter.py

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
String,
1313
is_node
1414
)
15-
from graphene.types.resolver import dict_resolver
1615
from graphene.types.json import JSONString
1716

1817
import mongoengine
1918

19+
from .advanced_types import PointType
2020
from .fields import MongoengineConnectionField
2121
from .utils import import_single_dispatch
2222

@@ -66,25 +66,9 @@ def convert_dict_to_jsonstring(field, registry=None):
6666
return JSONString(description=field.db_field, required=field.required)
6767

6868

69-
def resolve_type(self, info):
70-
return self['type']
71-
72-
def resolve_cooridinates(self, info):
73-
return self['coordinates']
74-
75-
7669
@convert_mongoengine_field.register(mongoengine.PointField)
7770
def convert_point_to_field(field, register=None):
78-
class Point(ObjectType):
79-
type = String(resolver=resolve_type)
80-
coordinates = List(Float,resolver=resolve_cooridinates)
81-
def resolve_type(self, info):
82-
return self['type']
83-
84-
def resolve_cooridinates(self, info):
85-
return self['coordinates']
86-
87-
return Field(Point)
71+
return Field(PointType)
8872

8973

9074
@convert_mongoengine_field.register(mongoengine.DateTimeField)

graphene_mongo/tests/test_converter.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import graphene
22
import mongoengine
33

4-
from graphene import Dynamic
5-
from graphene import Node
4+
from graphene import (
5+
Dynamic, Node
6+
)
67

78
from py.test import raises
89

@@ -82,23 +83,11 @@ def test_should_map_convert_json():
8283
assert_conversion(mongoengine.MapField, graphene.JSONString, field=mongoengine.StringField())
8384

8485

85-
# def test_should_point_convert_json():
86-
# assert_conversion(mongoengine.PointField, graphene.JSONString)
87-
8886
def test_should_point_convert_field():
89-
# def assert_conversion(mongoengine_field, graphene_field, *args, **kwargs):
90-
# field = mongoengine_field(*args, **kwargs)
91-
# graphene_type = convert_mongoengine_field(field)
92-
# assert isinstance(graphene_type, graphene_field)
93-
# field = graphene_type.Field()
94-
# return field
95-
# assert_conversion(mongoengine.PointField, graphene.ObjectType)
96-
9787
graphene_type = convert_mongoengine_field(mongoengine.PointField())
98-
assert isinstance(graphene_type, graphene.ObjectType)
99-
# print(graphene_type)
100-
# assert isinstance(graphene_type, graphene_field)
101-
# field = graphene_type.Field()
88+
assert isinstance(graphene_type, graphene.Field)
89+
assert isinstance(graphene_type.type.type, graphene.String)
90+
assert isinstance(graphene_type.type.coordinates, graphene.List)
10291

10392

10493
def test_should_field_convert_list():

graphene_mongo/tests/test_query.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -289,19 +289,24 @@ def resolve_children(self, *args, **kwargs):
289289
}
290290
'''
291291
expected = {
292-
'editors': [{
293-
}]
292+
'children': [
293+
{
294+
'bar': 'BAR',
295+
'baz': 'BAZ',
296+
'loc': None
297+
}, {
298+
'bar': 'bar',
299+
'baz': 'baz',
300+
'loc': {
301+
'type': 'Point',
302+
'coordinates': [10.0, 20.0]
303+
}
304+
}
305+
]
294306
}
295307

296308
schema = graphene.Schema(query=Query)
297309
result = schema.execute(query)
298-
# assert not result.errors
299-
print('result.data', result.data)
300-
# print('abaw')
301-
print(ChildType._meta.fields)
302-
# metadata = result.data['editor'].pop('metadata')
303-
# expected_metadata = expected['editor'].pop('metadata')
304-
# assert(json.loads(metadata)) == dict(json.loads(expected_metadata))
305-
# assert dict(result.data['editor']) == expected['editor']
306-
# assert all(item in result.data['editors'] for item in expected['editors'])
307-
310+
assert not result.errors
311+
assert json.dumps(result.data, sort_keys=True) == \
312+
json.dumps(expected, sort_keys=True)

0 commit comments

Comments
 (0)