Fixed #32722 -- Fixed comparing to TruncTime() on Oracle.

This commit is contained in:
Mariusz Felisiak 2021-05-07 08:46:22 +02:00 committed by Carlton Gibson
parent 205c36b58f
commit b1a4b1f0bd
3 changed files with 24 additions and 13 deletions

View file

@ -923,19 +923,28 @@ class DateFunctionTests(TestCase):
self.create_model(None, None)
self.assertIsNone(DTModel.objects.annotate(truncated=TruncTime('start_datetime')).first().truncated)
def test_trunc_time_no_microseconds(self):
start_datetime = datetime(2015, 6, 15, 14, 30, 26)
def test_trunc_time_comparison(self):
start_datetime = datetime(2015, 6, 15, 14, 30, 26) # 0 microseconds.
end_datetime = datetime(2015, 6, 15, 14, 30, 26, 321)
if settings.USE_TZ:
start_datetime = timezone.make_aware(start_datetime, is_dst=False)
self.create_model(start_datetime, None)
end_datetime = timezone.make_aware(end_datetime, is_dst=False)
self.create_model(start_datetime, end_datetime)
self.assertIs(
DTModel.objects.filter(start_datetime__time=start_datetime.time()).exists(),
DTModel.objects.filter(
start_datetime__time=start_datetime.time(),
end_datetime__time=end_datetime.time(),
).exists(),
True,
)
self.assertIs(
DTModel.objects.annotate(
extracted=TruncTime('start_datetime'),
).filter(extracted=start_datetime.time()).exists(),
extracted_start=TruncTime('start_datetime'),
extracted_end=TruncTime('end_datetime'),
).filter(
extracted_start=start_datetime.time(),
extracted_end=end_datetime.time(),
).exists(),
True,
)