Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-rest-framework
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
django-rest-framework
Commits
5e9249f4
Commit
5e9249f4
authored
Jan 18, 2017
by
Xavier Ordoquy
Committed by
GitHub
Jan 18, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4824 from auvipy/newv
new matrix for python 3.6 and django 1.11
parents
25049c48
026a8d87
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
39 additions
and
22 deletions
+39
-22
.travis.yml
+10
-6
rest_framework/compat.py
+9
-0
rest_framework/fields.py
+2
-2
tests/test_fields.py
+13
-12
tox.ini
+5
-2
No files found.
.travis.yml
View file @
5e9249f4
...
...
@@ -2,7 +2,6 @@ language: python
python
:
-
"
2.7"
-
"
3.3"
-
"
3.4"
-
"
3.5"
...
...
@@ -12,6 +11,7 @@ env:
-
DJANGO=1.8
-
DJANGO=1.9
-
DJANGO=1.10
-
DJANGO=1.11
-
DJANGO=master
matrix
:
...
...
@@ -19,19 +19,23 @@ matrix:
include
:
-
python
:
"
3.6"
env
:
DJANGO=master
-
python
:
"
3.6"
env
:
DJANGO=1.11
-
python
:
"
3.3"
env
:
DJANGO=1.18
-
python
:
"
2.7"
env
:
TOXENV="lint"
-
python
:
"
2.7"
env
:
TOXENV="docs"
exclude
:
-
python
:
"
3.3"
env
:
DJANGO=1.9
-
python
:
"
3.3"
env
:
DJANGO=1.10
-
python
:
"
3.3"
-
python
:
"
2.7"
env
:
DJANGO=master
-
python
:
"
3.4"
env
:
DJANGO=master
allow_failures
:
-
env
:
DJANGO=master
-
env
:
DJANGO=1.11
install
:
-
pip install tox tox-travis
...
...
rest_framework/compat.py
View file @
5e9249f4
...
...
@@ -312,3 +312,12 @@ def set_many(instance, field, value):
else
:
field
=
getattr
(
instance
,
field
)
field
.
set
(
value
)
try
:
# A `utc` instance is available in Django 1.11+
from
django.utils.timezone
import
utc
except
ImportError
:
# A `UTC` class is available in older versions
from
django.utils.timezone
import
UTC
utc
=
UTC
()
rest_framework/fields.py
View file @
5e9249f4
...
...
@@ -32,7 +32,7 @@ from django.utils.translation import ugettext_lazy as _
from
rest_framework
import
ISO_8601
from
rest_framework.compat
import
(
get_remote_field
,
unicode_repr
,
unicode_to_repr
,
value_from_object
get_remote_field
,
unicode_repr
,
unicode_to_repr
,
utc
,
value_from_object
)
from
rest_framework.exceptions
import
ErrorDetail
,
ValidationError
from
rest_framework.settings
import
api_settings
...
...
@@ -1104,7 +1104,7 @@ class DateTimeField(Field):
if
(
field_timezone
is
not
None
)
and
not
timezone
.
is_aware
(
value
):
return
timezone
.
make_aware
(
value
,
field_timezone
)
elif
(
field_timezone
is
None
)
and
timezone
.
is_aware
(
value
):
return
timezone
.
make_naive
(
value
,
timezone
.
UTC
()
)
return
timezone
.
make_naive
(
value
,
utc
)
return
value
def
default_timezone
(
self
):
...
...
tests/test_fields.py
View file @
5e9249f4
...
...
@@ -8,10 +8,11 @@ from decimal import Decimal
import
pytest
from
django.http
import
QueryDict
from
django.test
import
TestCase
,
override_settings
from
django.utils
import
six
,
timezone
from
django.utils
import
six
import
rest_framework
from
rest_framework
import
serializers
from
rest_framework.compat
import
utc
from
rest_framework.fields
import
is_simple_callable
try
:
...
...
@@ -1129,13 +1130,13 @@ class TestDateTimeField(FieldValues):
Valid and invalid values for `DateTimeField`.
"""
valid_inputs
=
{
'2001-01-01 13:00'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
timezone
.
UTC
()
),
'2001-01-01T13:00'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
timezone
.
UTC
()
),
'2001-01-01T13:00Z'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
timezone
.
UTC
()
),
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
):
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
timezone
.
UTC
()
),
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
timezone
.
UTC
()):
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
timezone
.
UTC
()
),
'2001-01-01 13:00'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
utc
),
'2001-01-01T13:00'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
utc
),
'2001-01-01T13:00Z'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
utc
),
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
):
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
utc
),
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
utc
):
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
utc
),
# Django 1.4 does not support timezone string parsing.
'2001-01-01T13:00Z'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
timezone
.
UTC
()
)
'2001-01-01T13:00Z'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
utc
)
}
invalid_inputs
=
{
'abc'
:
[
'Datetime has wrong format. Use one of these formats instead: YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z].'
],
...
...
@@ -1144,13 +1145,13 @@ class TestDateTimeField(FieldValues):
}
outputs
=
{
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
):
'2001-01-01T13:00:00'
,
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
timezone
.
UTC
()
):
'2001-01-01T13:00:00Z'
,
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
utc
):
'2001-01-01T13:00:00Z'
,
'2001-01-01T00:00:00'
:
'2001-01-01T00:00:00'
,
six
.
text_type
(
'2016-01-10T00:00:00'
):
'2016-01-10T00:00:00'
,
None
:
None
,
''
:
None
,
}
field
=
serializers
.
DateTimeField
(
default_timezone
=
timezone
.
UTC
()
)
field
=
serializers
.
DateTimeField
(
default_timezone
=
utc
)
class
TestCustomInputFormatDateTimeField
(
FieldValues
):
...
...
@@ -1158,13 +1159,13 @@ class TestCustomInputFormatDateTimeField(FieldValues):
Valid and invalid values for `DateTimeField` with a custom input format.
"""
valid_inputs
=
{
'1:35pm, 1 Jan 2001'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
35
,
tzinfo
=
timezone
.
UTC
()
),
'1:35pm, 1 Jan 2001'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
35
,
tzinfo
=
utc
),
}
invalid_inputs
=
{
'2001-01-01T20:50'
:
[
'Datetime has wrong format. Use one of these formats instead: hh:mm[AM|PM], DD [Jan-Dec] YYYY.'
]
}
outputs
=
{}
field
=
serializers
.
DateTimeField
(
default_timezone
=
timezone
.
UTC
()
,
input_formats
=
[
'
%
I:
%
M
%
p,
%
d
%
b
%
Y'
])
field
=
serializers
.
DateTimeField
(
default_timezone
=
utc
,
input_formats
=
[
'
%
I:
%
M
%
p,
%
d
%
b
%
Y'
])
class
TestCustomOutputFormatDateTimeField
(
FieldValues
):
...
...
@@ -1196,7 +1197,7 @@ class TestNaiveDateTimeField(FieldValues):
Valid and invalid values for `DateTimeField` with naive datetimes.
"""
valid_inputs
=
{
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
timezone
.
UTC
()
):
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
),
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
,
tzinfo
=
utc
):
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
),
'2001-01-01 13:00'
:
datetime
.
datetime
(
2001
,
1
,
1
,
13
,
00
),
}
invalid_inputs
=
{}
...
...
tox.ini
View file @
5e9249f4
...
...
@@ -5,7 +5,8 @@ addopts=--tb=short
envlist
=
{py27,py33,py34,py35}-django18,
{py27,py34,py35}-django{19,110},
{py27,py34,py35,py36}-djangomaster,
{py27,py34,py35,py36}-django111,
{py35,py36}-djangomaster
lint,docs
[travis:env]
...
...
@@ -13,6 +14,7 @@ DJANGO =
1.8:
django18
1.9:
django19
1.10:
django110
1.11:
django111
master:
djangomaster
[testenv]
...
...
@@ -22,8 +24,9 @@ setenv =
PYTHONWARNINGS
=
once
deps
=
django18:
Django>=1.8,<1.9
django19:
Django>=1.9,<
.
1.10
django19:
Django>=1.9,<1.10
django110:
Django>=1.10,<1.11
django111:
Django>=1.11a1,<2.0
djangomaster:
https://github.com/django/django/archive/master.tar.gz
-rrequirements/requirements-testing.txt
-rrequirements/requirements-optionals.txt
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment