graphene-django/graphene_django/tests/test_schema.py
2017-02-18 14:07:58 -08:00

58 lines
1.3 KiB
Python

from py.test import raises
from ..registry import Registry, reset_global_registry
from ..types import DjangoObjectType
from .models import Reporter
def setup_function(function):
reset_global_registry()
def test_should_raise_if_no_model():
with raises(Exception) as excinfo:
class Character1(DjangoObjectType):
pass
assert 'valid Django Model' in str(excinfo.value)
def test_should_raise_if_model_is_invalid():
with raises(Exception) as excinfo:
class Character2(DjangoObjectType):
class Meta:
model = 1
assert 'valid Django Model' in str(excinfo.value)
def test_should_map_fields_correctly():
class ReporterType2(DjangoObjectType):
class Meta:
model = Reporter
registry = Registry()
fields = list(ReporterType2._meta.fields.keys())
assert fields[:-2] == [
'id',
'first_name',
'last_name',
'email',
'pets',
'a_choice',
]
assert sorted(fields[-2:]) == [
'articles',
'films',
]
def test_should_map_only_few_fields():
class Reporter2(DjangoObjectType):
class Meta:
model = Reporter
only_fields = ('id', 'email')
assert list(Reporter2._meta.fields.keys()) == ['id', 'email']