Skip to content

Commit c184385

Browse files
authored
Fixed #1725 -- Fixed incorrect usage of time_property on tracdb models
1 parent 1b1a9d5 commit c184385

File tree

2 files changed

+36
-6
lines changed

2 files changed

+36
-6
lines changed

tracdb/models.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,10 +237,10 @@ class Milestone(models.Model):
237237
description = models.TextField()
238238

239239
_due = models.BigIntegerField(db_column="_due")
240-
due = time_property("due")
240+
due = time_property("_due")
241241

242242
_completed = models.BigIntegerField(db_column="_completed")
243-
completed = time_property("completed")
243+
completed = time_property("_completed")
244244

245245
class Meta:
246246
db_table = "milestone"
@@ -276,7 +276,7 @@ class Revision(models.Model):
276276
rev = models.TextField(primary_key=True)
277277

278278
_time = models.BigIntegerField(db_column="time")
279-
time = time_property("time")
279+
time = time_property("_time")
280280

281281
author = models.TextField()
282282
message = models.TextField()
@@ -297,7 +297,7 @@ class Wiki(models.Model):
297297
) # XXX See note at the top about composite pk
298298
version = models.IntegerField()
299299
_time = models.BigIntegerField(db_column="time")
300-
time = time_property("time")
300+
time = time_property("_time")
301301
author = models.TextField()
302302
text = models.TextField()
303303
comment = models.TextField()
@@ -319,7 +319,7 @@ class Attachment(models.Model):
319319
filename = models.TextField()
320320
size = models.IntegerField()
321321
_time = models.BigIntegerField(db_column="time")
322-
time = time_property("time")
322+
time = time_property("_time")
323323
description = models.TextField()
324324
author = models.TextField()
325325

tracdb/tests.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,16 @@
44
import time_machine
55
from django.test import SimpleTestCase, TestCase
66

7-
from .models import Revision, Ticket, TicketCustom
7+
from .models import (
8+
Attachment,
9+
Milestone,
10+
Revision,
11+
Ticket,
12+
TicketChange,
13+
TicketCustom,
14+
Version,
15+
Wiki,
16+
)
817
from .testutils import TracDBCreateDatabaseMixin
918
from .tractime import (
1019
datetime_to_timestamp,
@@ -262,3 +271,24 @@ def test_dayrange_1_day(self):
262271
dayrange(date(1970, 1, 1), days=1),
263272
(offset, offset + 24 * 3600 * 1_000_000 - 1),
264273
)
274+
275+
276+
class TimePropertyTest(SimpleTestCase):
277+
def test_time_property_on_all_fields(self):
278+
for model_class, field_name, property_name in [
279+
(Ticket, "_time", "time"),
280+
(Ticket, "_changetime", "changetime"),
281+
(TicketChange, "_time", "time"),
282+
(Version, "_time", "time"),
283+
(Milestone, "_due", "due"),
284+
(Milestone, "_completed", "completed"),
285+
(Revision, "_time", "time"),
286+
(Wiki, "_time", "time"),
287+
(Attachment, "_time", "time"),
288+
]:
289+
with self.subTest(model=model_class, field=field_name):
290+
obj = model_class(**{field_name: 1_000_000})
291+
self.assertEqual(
292+
getattr(obj, property_name),
293+
datetime(1970, 1, 1, 0, 0, 1, tzinfo=UTC),
294+
)

0 commit comments

Comments
 (0)