diff --git a/.travis.yml b/.travis.yml index 7224796..9bc0bb0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,17 @@ language: python sudo: false python: + - "2.7" - "3.4" + - "3.5" env: global: - - DRF="djangorestframework==3.3.2" - - DJANGO="django==1.9.3" + - DRF="djangorestframework==3.4.5" matrix: - - LINT= - - LINT=1 + - DJANGO="django==1.8.14" + - DJANGO="django==1.9.9" + - DJANGO="django==1.10" + - DJANGO="django==1.10" LINT=1 install: - pip install $DJANGO - pip install $DRF diff --git a/natural_keys/models.py b/natural_keys/models.py index 6156ce8..e423953 100644 --- a/natural_keys/models.py +++ b/natural_keys/models.py @@ -125,7 +125,7 @@ def get_natural_key_info(cls): fields = cls.get_natural_key_def() info = [] for name in fields: - field = cls._meta.get_field_by_name(name)[0] + field = cls._meta.get_field(name) rel_to = field.rel.to if field.rel else None info.append((name, rel_to)) return info diff --git a/tests/test_app/__init__.py b/tests/test_app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_naturalkey.py b/tests/test_naturalkey.py index c1d1e6f..5c1ac9e 100644 --- a/tests/test_naturalkey.py +++ b/tests/test_naturalkey.py @@ -75,17 +75,22 @@ def test_naturalkey_duplicate(self): class NaturalKeyRestTestCase(APITestCase): def test_naturalkey_rest_serializer(self): # Serializer should include validator - serializer = NaturalKeySerializer.for_model(NaturalKeyChild) + serializer = NaturalKeySerializer.for_model(NaturalKeyChild)() self.maxDiff = 10000000 expect = """ Serializer(): - parent = Serializer(required=True): - code = CharField(max_length=10, required=True) - group = CharField(max_length=10, required=True) - mode = CharField(max_length=10, required=True) + parent = Serializer(): + code = CharField(max_length=10) + group = CharField(max_length=10) + mode = CharField(max_length=10) class Meta: validators = []""".replace(" ", "")[1:] # noqa - self.assertEqual(str(serializer()), expect) + self.assertEqual(expect, str(serializer)) + + fields = serializer.get_fields() + self.assertTrue(fields['parent'].required) + self.assertTrue(fields['mode'].required) + self.assertTrue(fields['parent'].get_fields()['code'].required) def test_naturalkey_rest_post(self): # Posting a natural key should work diff --git a/tests/urls.py b/tests/urls.py index abdb29a..5e44d50 100644 --- a/tests/urls.py +++ b/tests/urls.py @@ -1,7 +1,6 @@ -from django.conf.urls import patterns, url, include +from django.conf.urls import url, include -urlpatterns = patterns( - '', +urlpatterns = [ url('', include('tests.test_app.urls')), -) +]