Skip to content

Commit 29acf11

Browse files
authored
Merge pull request #17 from heavenshell/topic/django4
2 parents e6a3da0 + 784811e commit 29acf11

File tree

5 files changed

+32
-4
lines changed

5 files changed

+32
-4
lines changed

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ matrix:
3737
python: 3.7
3838
- env: TOX_ENV=py38-djmaster
3939
python: 3.8
40+
- env: TOX_ENV=py39-djmaster
41+
python: 3.9
42+
- env: TOX_ENV=py310-djmaster
43+
python: 3.10
4044
allow_failures:
4145
- env: TOX_ENV=py36-djmaster
4246
- env: TOX_ENV=py37-djmaster

tests/models.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# Django
1313
from django.conf import settings
1414
from django.db import models
15-
from django.utils.translation import ugettext_lazy as _
15+
from django.utils.translation import gettext_lazy as _
1616

1717
# App
1818
from timezone_utils.fields import LinkedTZDateTimeField, TimeZoneField
@@ -27,6 +27,7 @@ class TZWithLowMaxLength(models.Model):
2727
maximum length of the longest value provided by pytz.all_timezones.
2828
2929
"""
30+
id = models.AutoField(primary_key=True)
3031
timezone = TimeZoneField(
3132
max_length=15,
3233
null=True,
@@ -35,6 +36,7 @@ class TZWithLowMaxLength(models.Model):
3536

3637
class TZWithBadStringDefault(models.Model):
3738
"""Test should check that a ValidationError is raised when..."""
39+
id = models.AutoField(primary_key=True)
3840
timezone = TimeZoneField(
3941
default='Bad/Worse',
4042
max_length=64,
@@ -43,13 +45,15 @@ class TZWithBadStringDefault(models.Model):
4345

4446

4547
class ModelWithBadTimeOverride(models.Model):
48+
id = models.AutoField(primary_key=True)
4649
timestamp = LinkedTZDateTimeField(
4750
default=settings.TEST_DATETIME,
4851
time_override='<invalid>',
4952
)
5053

5154

5255
class ModelWithBadPopulateFrom(models.Model):
56+
id = models.AutoField(primary_key=True)
5357
timezone = TimeZoneField(default='US/Eastern')
5458
timestamp = LinkedTZDateTimeField(
5559
default=settings.TEST_DATETIME,
@@ -58,6 +62,7 @@ class ModelWithBadPopulateFrom(models.Model):
5862

5963

6064
class ModelWithBadTimeZoneCharField(models.Model):
65+
id = models.AutoField(primary_key=True)
6166
timezone = models.CharField(default='Bad/Worse', max_length=64)
6267
timestamp = LinkedTZDateTimeField(
6368
default=settings.TEST_DATETIME,
@@ -66,6 +71,7 @@ class ModelWithBadTimeZoneCharField(models.Model):
6671

6772

6873
class LocationTimeZone(models.Model):
74+
id = models.AutoField(primary_key=True)
6975
timezone = TimeZoneField(
7076
verbose_name=_('timezone'),
7177
max_length=64,
@@ -75,6 +81,7 @@ class LocationTimeZone(models.Model):
7581

7682

7783
class LocationTimeZoneChoices(models.Model):
84+
id = models.AutoField(primary_key=True)
7885
timezone = TimeZoneField(
7986
verbose_name=_('timezone'),
8087
max_length=64,
@@ -85,6 +92,7 @@ class LocationTimeZoneChoices(models.Model):
8592

8693

8794
class LocationTimeZoneChoicesWithEmpty(models.Model):
95+
id = models.AutoField(primary_key=True)
8896
timezone = TimeZoneField(
8997
verbose_name=_('timezone'),
9098
max_length=64,
@@ -95,6 +103,7 @@ class LocationTimeZoneChoicesWithEmpty(models.Model):
95103

96104

97105
class LocationTimeZoneBadChoices(models.Model):
106+
id = models.AutoField(primary_key=True)
98107
timezone = TimeZoneField(
99108
verbose_name=_('timezone'),
100109
max_length=64,
@@ -105,6 +114,7 @@ class LocationTimeZoneBadChoices(models.Model):
105114

106115

107116
class TZWithGoodStringDefault(models.Model):
117+
id = models.AutoField(primary_key=True)
108118
"""Test should validate that"""
109119
timezone = TimeZoneField(
110120
default='US/Eastern',
@@ -114,6 +124,7 @@ class TZWithGoodStringDefault(models.Model):
114124

115125

116126
class TZWithGoodTZInfoDefault(models.Model):
127+
id = models.AutoField(primary_key=True)
117128
timezone = TimeZoneField(
118129
default=pytz.timezone('US/Pacific'),
119130
max_length=64,
@@ -122,18 +133,21 @@ class TZWithGoodTZInfoDefault(models.Model):
122133

123134

124135
class ModelWithDateTimeOnly(models.Model):
136+
id = models.AutoField(primary_key=True)
125137
timestamp = LinkedTZDateTimeField(
126138
default=settings.TEST_DATETIME,
127139
)
128140

129141

130142
class NullModelWithDateTimeOnly(models.Model):
143+
id = models.AutoField(primary_key=True)
131144
timestamp = LinkedTZDateTimeField(
132145
null=True,
133146
)
134147

135148

136149
class CallableTimeStampedModel(models.Model):
150+
id = models.AutoField(primary_key=True)
137151
start = LinkedTZDateTimeField(
138152
default=settings.TEST_DATETIME,
139153
time_override=datetime.min.time
@@ -145,6 +159,7 @@ class CallableTimeStampedModel(models.Model):
145159

146160

147161
class StaticTimeStampedModel(models.Model):
162+
id = models.AutoField(primary_key=True)
148163
start = LinkedTZDateTimeField(
149164
default=settings.TEST_DATETIME,
150165
time_override=datetime_time(0, 0)
@@ -160,6 +175,7 @@ def get_other_model_timezone(obj):
160175

161176

162177
class ModelWithForeignKeyToTimeZone(models.Model):
178+
id = models.AutoField(primary_key=True)
163179
other_model = models.ForeignKey(
164180
to='tests.TZWithGoodStringDefault',
165181
related_name='fk_to_tz',
@@ -172,6 +188,7 @@ class ModelWithForeignKeyToTimeZone(models.Model):
172188

173189

174190
class ModelWithLocalTimeZone(models.Model):
191+
id = models.AutoField(primary_key=True)
175192
timezone = TimeZoneField(default='US/Eastern')
176193
timestamp = LinkedTZDateTimeField(
177194
default=settings.TEST_DATETIME,
@@ -180,6 +197,7 @@ class ModelWithLocalTimeZone(models.Model):
180197

181198

182199
class ModelWithLocalTZCharField(models.Model):
200+
id = models.AutoField(primary_key=True)
183201
timezone = models.CharField(default='US/Eastern', max_length=64)
184202
timestamp = LinkedTZDateTimeField(
185203
default=settings.TEST_DATETIME,
@@ -188,6 +206,7 @@ class ModelWithLocalTZCharField(models.Model):
188206

189207

190208
class TZTimeFramedModel(models.Model):
209+
id = models.AutoField(primary_key=True)
191210
other_model = models.ForeignKey(
192211
to='tests.TZWithGoodStringDefault',
193212
related_name='fk_to_tz_too',

timezone_utils/fields.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from django.core.exceptions import ValidationError
1414
from django.db.models.fields import DateTimeField, CharField
1515
from django.utils.timezone import get_default_timezone, is_naive, make_aware
16-
from django.utils.translation import ugettext_lazy as _
16+
from django.utils.translation import gettext_lazy as _
1717

1818
# App
1919
from timezone_utils import forms

timezone_utils/forms.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@
88
# Django
99
from django.core.exceptions import ValidationError
1010
from django.forms import CharField
11-
from django.utils.encoding import force_text
12-
from django.utils.translation import ugettext_lazy as _
11+
try:
12+
from django.utils.encoding import force_str as force_text
13+
except ImportError:
14+
from django.utils.encoding import force_text
15+
from django.utils.translation import gettext_lazy as _
1316

1417
__all__ = ('TimeZoneField', )
1518

tox.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ basepython =
1212
py36: python3.6
1313
py37: python3.7
1414
py38: python3.8
15+
py39: python3.9
16+
py310: python3.10
1517
deps =
1618
dj111: Django>=1.11,<2.0
1719
dj22: Django>=2.2,<3.0

0 commit comments

Comments
 (0)