graphene-django/graphene_django/tests/test_schema.py

57 lines
1.3 KiB
Python
Raw Normal View History

from pytest import raises
from ..registry import Registry
from ..types import DjangoObjectType
from .models import Reporter
def test_should_raise_if_no_model():
with raises(Exception) as excinfo:
2018-07-20 02:51:33 +03:00
class Character1(DjangoObjectType):
fields = "__all__"
2018-07-20 02:51:33 +03:00
assert "valid Django Model" in str(excinfo.value)
def test_should_raise_if_model_is_invalid():
with raises(Exception) as excinfo:
2018-07-20 02:51:33 +03:00
class Character2(DjangoObjectType):
class Meta:
model = 1
fields = "__all__"
2018-07-20 02:51:33 +03:00
assert "valid Django Model" in str(excinfo.value)
def test_should_map_fields_correctly():
class ReporterType2(DjangoObjectType):
class Meta:
model = Reporter
registry = Registry()
fields = "__all__"
2018-07-20 02:51:33 +03:00
2016-09-18 03:28:41 +03:00
fields = list(ReporterType2._meta.fields.keys())
assert fields[:-3] == [
2018-07-20 02:51:33 +03:00
"id",
"first_name",
"last_name",
"email",
"pets",
"a_choice",
"fans",
2018-07-20 02:51:33 +03:00
"reporter_type",
2016-09-18 03:28:41 +03:00
]
assert sorted(fields[-3:]) == ["apnewsreporter", "articles", "films"]
def test_should_map_only_few_fields():
class Reporter2(DjangoObjectType):
class Meta:
model = Reporter
fields = ("id", "email")
2018-07-20 02:51:33 +03:00
assert list(Reporter2._meta.fields.keys()) == ["id", "email"]