2016-09-18 02:29:00 +03:00
|
|
|
from py.test import raises
|
|
|
|
|
|
|
|
from ..registry import Registry
|
2016-09-18 03:09:56 +03:00
|
|
|
from ..types import DjangoObjectType
|
2016-09-18 02:29:00 +03:00
|
|
|
from .models import Reporter
|
|
|
|
|
|
|
|
|
|
|
|
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):
|
2016-09-18 03:09:56 +03:00
|
|
|
|
2016-09-18 02:29:00 +03:00
|
|
|
class Meta:
|
|
|
|
model = Reporter
|
|
|
|
registry = Registry()
|
2016-09-18 03:28:41 +03:00
|
|
|
fields = list(ReporterType2._meta.fields.keys())
|
|
|
|
assert fields[:-2] == [
|
2016-09-18 03:09:56 +03:00
|
|
|
'id',
|
|
|
|
'first_name',
|
|
|
|
'last_name',
|
|
|
|
'email',
|
|
|
|
'pets',
|
|
|
|
'a_choice',
|
2016-09-18 03:28:41 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
assert sorted(fields[-2:]) == [
|
2016-09-18 03:09:56 +03:00
|
|
|
'articles',
|
2016-09-18 03:28:41 +03:00
|
|
|
'films',
|
|
|
|
]
|
2016-09-18 02:29:00 +03:00
|
|
|
|
|
|
|
|
|
|
|
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']
|