Skip to content

Commit c32dd19

Browse files
committed
Remove some compatility layers for django 1.6
1 parent 575e1da commit c32dd19

File tree

5 files changed

+13
-45
lines changed

5 files changed

+13
-45
lines changed

graphene_django/compat.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,14 @@
1-
from django.db import models
2-
3-
41
class MissingType(object):
52
pass
63

74

8-
try:
9-
DurationField = models.DurationField
10-
UUIDField = models.UUIDField
11-
except AttributeError:
12-
# Improved compatibility for Django 1.6
13-
DurationField = MissingType
14-
UUIDField = MissingType
15-
165
try:
176
from django.db.models.related import RelatedObject
187
except:
198
# Improved compatibility for Django 1.6
209
RelatedObject = MissingType
2110

2211

23-
try:
24-
# Postgres fields are only available in Django 1.8+
25-
from django.contrib.postgres.fields import ArrayField, HStoreField, RangeField
26-
except ImportError:
27-
ArrayField, HStoreField, JSONField, RangeField = (MissingType, ) * 4
28-
29-
3012
try:
3113
# Postgres fields are only available in Django 1.9+
3214
from django.contrib.postgres.fields import JSONField

graphene_django/converter.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.db import models
22
from django.utils.encoding import force_text
3+
from django.contrib.postgres.fields import ArrayField, HStoreField, RangeField
34

45
from graphene import (ID, Boolean, Dynamic, Enum, Field, Float, Int, List,
56
NonNull, String)
@@ -9,8 +10,8 @@
910
from graphene.utils.str_converters import to_camel_case, to_const
1011
from graphql import assert_valid_name
1112

12-
from .compat import (ArrayField, HStoreField, JSONField, RangeField,
13-
RelatedObject, UUIDField, DurationField)
13+
14+
from .compat import JSONField, RelatedObject
1415
from .fields import get_connection_field, DjangoListField
1516
from .utils import get_related_model, import_single_dispatch
1617

@@ -80,7 +81,7 @@ def convert_field_to_string(field, registry=None):
8081

8182

8283
@convert_django_field.register(models.AutoField)
83-
@convert_django_field.register(UUIDField)
84+
@convert_django_field.register(models.UUIDField)
8485
def convert_field_to_id(field, registry=None):
8586
return ID(description=field.help_text, required=not field.null)
8687

@@ -106,7 +107,7 @@ def convert_field_to_nullboolean(field, registry=None):
106107

107108
@convert_django_field.register(models.DecimalField)
108109
@convert_django_field.register(models.FloatField)
109-
@convert_django_field.register(DurationField)
110+
@convert_django_field.register(models.DurationField)
110111
def convert_field_to_float(field, registry=None):
111112
return Float(description=field.help_text, required=not field.null)
112113

graphene_django/debug/tests/test_query.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import graphene
44
from graphene.relay import Node
55
from graphene_django import DjangoConnectionField, DjangoObjectType
6-
from graphene_django.utils import DJANGO_FILTER_INSTALLED
76

87
from ...tests.models import Reporter
98
from ..middleware import DjangoDebugMiddleware
@@ -167,8 +166,6 @@ def resolve_all_reporters(self, *args, **kwargs):
167166
assert result.data['__debug']['sql'][1]['rawSql'] == query
168167

169168

170-
@pytest.mark.skipif(not DJANGO_FILTER_INSTALLED,
171-
reason="requires django-filter")
172169
def test_should_query_connectionfilter():
173170
from ...filter import DjangoFilterConnectionField
174171

graphene_django/tests/test_converter.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import pytest
22
from django.db import models
33
from django.utils.translation import ugettext_lazy as _
4+
from django.contrib.postgres.fields import ArrayField, HStoreField, RangeField
5+
46
from py.test import raises
57

68
import graphene
79
from graphene.relay import ConnectionField, Node
810
from graphene.types.datetime import DateTime, Time
911
from graphene.types.json import JSONString
1012

11-
from ..compat import (ArrayField, HStoreField, JSONField, MissingType,
12-
RangeField, UUIDField, DurationField)
13+
from ..compat import JSONField, RelatedObject
1314
from ..converter import convert_django_field, convert_django_field_with_choices
1415
from ..registry import Registry
1516
from ..types import DjangoObjectType
@@ -84,14 +85,12 @@ def test_should_auto_convert_id():
8485
assert_conversion(models.AutoField, graphene.ID, primary_key=True)
8586

8687

87-
@pytest.mark.skipif(UUIDField == MissingType, reason="requires Django UUIDField")
8888
def test_should_auto_convert_id():
89-
assert_conversion(UUIDField, graphene.ID)
89+
assert_conversion(models.UUIDField, graphene.ID)
9090

9191

92-
@pytest.mark.skipif(DurationField == MissingType, reason="requires Django DurationField")
9392
def test_should_auto_convert_duration():
94-
assert_conversion(DurationField, graphene.Float)
93+
assert_conversion(models.DurationField, graphene.Float)
9594

9695

9796
def test_should_positive_integer_convert_int():

graphene_django/utils.py

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
from django.db import models
44
from django.db.models.manager import Manager
55

6-
from .compat import RelatedObject
7-
86

97
# from graphene.utils import LazyList
108

@@ -13,25 +11,16 @@ class LazyList(object):
1311
pass
1412

1513

16-
try:
17-
import django_filters # noqa
18-
DJANGO_FILTER_INSTALLED = True
19-
except (ImportError, AttributeError):
20-
# AtributeError raised if DjangoFilters installed with a incompatible Django Version
21-
DJANGO_FILTER_INSTALLED = False
14+
import django_filters # noqa
15+
DJANGO_FILTER_INSTALLED = True
2216

2317

2418
def get_reverse_fields(model):
2519
for name, attr in model.__dict__.items():
2620
# Django =>1.9 uses 'rel', django <1.9 uses 'related'
2721
related = getattr(attr, 'rel', None) or \
2822
getattr(attr, 'related', None)
29-
if isinstance(related, RelatedObject):
30-
# Hack for making it compatible with Django 1.6
31-
new_related = RelatedObject(related.parent_model, related.model, related.field)
32-
new_related.name = name
33-
yield (name, new_related)
34-
elif isinstance(related, models.ManyToOneRel):
23+
if isinstance(related, models.ManyToOneRel):
3524
yield (name, related)
3625
elif isinstance(related, models.ManyToManyRel) and not related.symmetrical:
3726
yield (name, related)

0 commit comments

Comments
 (0)