Skip to content

Commit adde400

Browse files
authored
Merge pull request #335 from urbandove/master
models.DateField => graphene Date Scalar
2 parents c585982 + da3bb5e commit adde400

File tree

11 files changed

+42
-15
lines changed

11 files changed

+42
-15
lines changed

graphene_django/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
DjangoConnectionField,
66
)
77

8-
__version__ = '2.0.0'
8+
__version__ = '2.0.1'
99

1010
__all__ = [
1111
'__version__',

graphene_django/converter.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from graphene import (ID, Boolean, Dynamic, Enum, Field, Float, Int, List,
55
NonNull, String, UUID)
6-
from graphene.types.datetime import DateTime, Time
6+
from graphene.types.datetime import DateTime, Date, Time
77
from graphene.types.json import JSONString
88
from graphene.utils.str_converters import to_camel_case, to_const
99
from graphql import assert_valid_name
@@ -121,9 +121,14 @@ def convert_field_to_float(field, registry=None):
121121
return Float(description=field.help_text, required=not field.null)
122122

123123

124+
@convert_django_field.register(models.DateTimeField)
125+
def convert_datetime_to_string(field, registry=None):
126+
return DateTime(description=field.help_text, required=not field.null)
127+
128+
124129
@convert_django_field.register(models.DateField)
125130
def convert_date_to_string(field, registry=None):
126-
return DateTime(description=field.help_text, required=not field.null)
131+
return Date(description=field.help_text, required=not field.null)
127132

128133

129134
@convert_django_field.register(models.TimeField)

graphene_django/filter/tests/test_fields.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ class Query(ObjectType):
157157

158158
r1 = Reporter.objects.create(first_name='r1', last_name='r1', email='[email protected]')
159159
r2 = Reporter.objects.create(first_name='r2', last_name='r2', email='[email protected]')
160-
Article.objects.create(headline='a1', pub_date=datetime.now(), reporter=r1, editor=r1)
161-
Article.objects.create(headline='a2', pub_date=datetime.now(), reporter=r2, editor=r2)
160+
Article.objects.create(headline='a1', pub_date=datetime.now(), pub_date_time=datetime.now(), reporter=r1, editor=r1)
161+
Article.objects.create(headline='a2', pub_date=datetime.now(), pub_date_time=datetime.now(), reporter=r2, editor=r2)
162162

163163
class context(object):
164164
reporter = r2
@@ -245,8 +245,8 @@ class Query(ObjectType):
245245

246246
r1 = Reporter.objects.create(first_name='r1', last_name='r1', email='[email protected]')
247247
r2 = Reporter.objects.create(first_name='r2', last_name='r2', email='[email protected]')
248-
Article.objects.create(headline='a1', pub_date=datetime.now(), reporter=r1)
249-
Article.objects.create(headline='a2', pub_date=datetime.now(), reporter=r2)
248+
Article.objects.create(headline='a1', pub_date=datetime.now(), pub_date_time=datetime.now(), reporter=r1)
249+
Article.objects.create(headline='a2', pub_date=datetime.now(), pub_date_time=datetime.now(), reporter=r2)
250250

251251
query = '''
252252
query {
@@ -464,13 +464,15 @@ def resolve_all_reporters(self, info, **args):
464464
Article.objects.create(
465465
headline='Article Node 1',
466466
pub_date=datetime.now(),
467+
pub_date_time=datetime.now(),
467468
reporter=r,
468469
editor=r,
469470
lang='es'
470471
)
471472
Article.objects.create(
472473
headline='Article Node 2',
473474
pub_date=datetime.now(),
475+
pub_date_time=datetime.now(),
474476
reporter=r,
475477
editor=r,
476478
lang='en'

graphene_django/rest_framework/serializer_converter.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,13 @@ def convert_serializer_field_to_float(field):
9292

9393

9494
@get_graphene_type_from_serializer_field.register(serializers.DateTimeField)
95+
def convert_serializer_field_to_datetime_time(field):
96+
return graphene.types.datetime.DateTime
97+
98+
9599
@get_graphene_type_from_serializer_field.register(serializers.DateField)
96100
def convert_serializer_field_to_date_time(field):
97-
return graphene.types.datetime.DateTime
101+
return graphene.types.datetime.Date
98102

99103

100104
@get_graphene_type_from_serializer_field.register(serializers.TimeField)

graphene_django/rest_framework/tests/test_field_converter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ def test_should_date_time_convert_datetime():
8787
assert_conversion(serializers.DateTimeField, graphene.types.datetime.DateTime)
8888

8989

90-
def test_should_date_convert_datetime():
91-
assert_conversion(serializers.DateField, graphene.types.datetime.DateTime)
90+
def test_should_date_convert_date():
91+
assert_conversion(serializers.DateField, graphene.types.datetime.Date)
9292

9393

9494
def test_should_time_convert_time():

graphene_django/tests/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ def __str__(self): # __unicode__ on Python 2
4242
class Article(models.Model):
4343
headline = models.CharField(max_length=100)
4444
pub_date = models.DateField()
45+
pub_date_time = models.DateTimeField()
4546
reporter = models.ForeignKey(Reporter, related_name='articles')
4647
editor = models.ForeignKey(Reporter, related_name='edited_articles_+')
4748
lang = models.CharField(max_length=2, help_text='Language', choices=[

graphene_django/tests/test_converter.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import graphene
77
from graphene.relay import ConnectionField, Node
8-
from graphene.types.datetime import DateTime, Time
8+
from graphene.types.datetime import DateTime, Date, Time
99
from graphene.types.json import JSONString
1010

1111
from ..compat import JSONField, ArrayField, HStoreField, RangeField, MissingType
@@ -38,9 +38,12 @@ def test_should_unknown_django_field_raise_exception():
3838
convert_django_field(None)
3939
assert 'Don\'t know how to convert the Django field' in str(excinfo.value)
4040

41+
def test_should_date_time_convert_string():
42+
assert_conversion(models.DateTimeField, DateTime)
43+
4144

4245
def test_should_date_convert_string():
43-
assert_conversion(models.DateField, DateTime)
46+
assert_conversion(models.DateField, Date)
4447

4548

4649
def test_should_time_convert_string():

graphene_django/tests/test_form_converter.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ def test_should_date_convert_string():
3030
def test_should_time_convert_string():
3131
assert_conversion(forms.TimeField, graphene.String)
3232

33+
def test_should_date_convert_string():
34+
assert_conversion(forms.DateField, graphene.String)
3335

3436
def test_should_date_time_convert_string():
3537
assert_conversion(forms.DateTimeField, graphene.String)

graphene_django/tests/test_query.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,13 +371,15 @@ class Query(graphene.ObjectType):
371371
Article.objects.create(
372372
headline='Article Node 1',
373373
pub_date=datetime.date.today(),
374+
pub_date_time=datetime.datetime.now(),
374375
reporter=r,
375376
editor=r,
376377
lang='es'
377378
)
378379
Article.objects.create(
379380
headline='Article Node 2',
380381
pub_date=datetime.date.today(),
382+
pub_date_time=datetime.datetime.now(),
381383
reporter=r,
382384
editor=r,
383385
lang='en'
@@ -453,20 +455,23 @@ class Query(graphene.ObjectType):
453455
Article.objects.create(
454456
headline='Article Node 1',
455457
pub_date=datetime.date.today(),
458+
pub_date_time=datetime.datetime.now(),
456459
reporter=r,
457460
editor=r,
458461
lang='es'
459462
)
460463
Article.objects.create(
461464
headline='Article Node 2',
462465
pub_date=datetime.date.today(),
466+
pub_date_time=datetime.datetime.now(),
463467
reporter=r,
464468
editor=r,
465469
lang='es'
466470
)
467471
Article.objects.create(
468472
headline='Article Node 3',
469473
pub_date=datetime.date.today(),
474+
pub_date_time=datetime.datetime.now(),
470475
reporter=r,
471476
editor=r,
472477
lang='en'
@@ -842,13 +847,15 @@ class Query(graphene.ObjectType):
842847
Article.objects.create(
843848
headline='Article Node 1',
844849
pub_date=datetime.date.today(),
850+
pub_date_time=datetime.datetime.now(),
845851
reporter=r,
846852
editor=r,
847853
lang='es'
848854
)
849855
Article.objects.create(
850856
headline='Article Node 2',
851857
pub_date=datetime.date.today(),
858+
pub_date_time=datetime.datetime.now(),
852859
reporter=r,
853860
editor=r,
854861
lang='en'

graphene_django/tests/test_types.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def test_django_objecttype_map_correct_fields():
6464

6565
def test_django_objecttype_with_node_have_correct_fields():
6666
fields = Article._meta.fields
67-
assert list(fields.keys()) == ['id', 'headline', 'pub_date', 'reporter', 'editor', 'lang', 'importance']
67+
assert list(fields.keys()) == ['id', 'headline', 'pub_date', 'pub_date_time', 'reporter', 'editor', 'lang', 'importance']
6868

6969

7070
def test_django_objecttype_with_custom_meta():
@@ -96,7 +96,8 @@ def test_schema_representation():
9696
type Article implements Node {
9797
id: ID!
9898
headline: String!
99-
pubDate: DateTime!
99+
pubDate: Date!
100+
pubDateTime: DateTime!
100101
reporter: Reporter!
101102
editor: Reporter!
102103
lang: ArticleLang!
@@ -124,6 +125,8 @@ def test_schema_representation():
124125
EN
125126
}
126127
128+
scalar Date
129+
127130
scalar DateTime
128131
129132
interface Node {

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858

5959
install_requires=[
6060
'six>=1.10.0',
61-
'graphene>=2.0,<3',
61+
'graphene>=2.0.1,<3',
6262
django_version,
6363
'iso8601',
6464
'singledispatch>=3.4.0.3',

0 commit comments

Comments
 (0)