Skip to content

Commit

Permalink
test: Add related test case of EmbeddedDocument field
Browse files Browse the repository at this point in the history
  • Loading branch information
abawchen committed May 29, 2018
1 parent 1301b0e commit 940a1f8
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 10 deletions.
1 change: 1 addition & 0 deletions graphene_mongo/tests/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ def setup_fixtures():

ProfessorVector.drop_collection()
professor_metadata = ProfessorMetadata(
id='5e06aa20-6805-4eef-a144-5615dedbe32b',
first_name='Steven',
last_name='Curry',
departments=['NBA', 'MLB']
Expand Down
3 changes: 1 addition & 2 deletions graphene_mongo/tests/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ class Child(Parent):
class ProfessorMetadata(EmbeddedDocument):

meta = {'collection': 'test_professor_metadata'}
# id = StringField()
id = StringField(primary_key=False)
first_name = StringField()
last_name = StringField()
departments = ListField(StringField())
Expand All @@ -96,6 +96,5 @@ class ProfessorMetadata(EmbeddedDocument):
class ProfessorVector(Document):

meta = {'collection': 'test_professor_vector'}
# id = StringField()
vec = ListField(FloatField())
metadata = EmbeddedDocumentField(ProfessorMetadata)
44 changes: 37 additions & 7 deletions graphene_mongo/tests/test_query.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
import graphene

from .fixtures import setup_fixtures
from .models import Editor, Player, Reporter
from .types import (EditorType,
PlayerType,
ReporterType)
from .models import (
Editor, Player, Reporter, ProfessorVector
)
from .types import (
EditorType, PlayerType, ReporterType, ProfessorVectorType
)

setup_fixtures()

Expand Down Expand Up @@ -227,6 +229,34 @@ def resolve_all_players(self, *args, **kwargs):
assert json.dumps(result.data, sort_keys=True) == json.dumps(expected, sort_keys=True)


# TODO:
def test_should_paging():
pass
def test_should_query_with_embedded_document():

class Query(graphene.ObjectType):
professor_vector = graphene.Field(ProfessorVectorType, id=graphene.String())

def resolve_professor_vector(self, info, id):
return ProfessorVector.objects(metadata__id=id).first()

query = """
query {
professorVector(id: "5e06aa20-6805-4eef-a144-5615dedbe32b") {
vec
metadata {
firstName
}
}
}
"""

expected = {
'professorVector': {
'vec': [1.0, 2.3],
'metadata': {
'firstName': 'Steven'
}
}
}
schema = graphene.Schema(query=Query, types=[ProfessorVectorType])
result = schema.execute(query)
assert not result.errors
assert json.dumps(result.data, sort_keys=True) == json.dumps(expected, sort_keys=True)
14 changes: 13 additions & 1 deletion graphene_mongo/tests/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from ..types import MongoengineObjectType
from .models import (
Article, Editor, EmbeddedArticle, Player, Reporter,
Parent, Child
Parent, Child, ProfessorMetadata, ProfessorVector,
)


Expand Down Expand Up @@ -49,6 +49,18 @@ class Meta:
model = Child


class ProfessorMetadataType(MongoengineObjectType):

class Meta:
model = ProfessorMetadata


class ProfessorVectorType(MongoengineObjectType):

class Meta:
model = ProfessorVector


class ArticleNode(MongoengineObjectType):

class Meta:
Expand Down

0 comments on commit 940a1f8

Please sign in to comment.