mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Removed DatabaseFeatures.supports_microsecond_precision.
MySQL 5.5 (refs #28552) was the last database to use it.
This commit is contained in:
parent
8a1768432b
commit
a80903b711
8 changed files with 89 additions and 199 deletions
|
@ -1028,19 +1028,16 @@ class FTimeDeltaTests(TestCase):
|
|||
|
||||
# e1: started one day after assigned, tiny duration, data
|
||||
# set so that end time has no fractional seconds, which
|
||||
# tests an edge case on sqlite. This Experiment is only
|
||||
# included in the test data when the DB supports microsecond
|
||||
# precision.
|
||||
if connection.features.supports_microsecond_precision:
|
||||
delay = datetime.timedelta(1)
|
||||
end = stime + delay + delta1
|
||||
e1 = Experiment.objects.create(
|
||||
name='e1', assigned=sday, start=stime + delay, end=end,
|
||||
completed=end.date(), estimated_time=delta1,
|
||||
)
|
||||
cls.deltas.append(delta1)
|
||||
cls.delays.append(e1.start - datetime.datetime.combine(e1.assigned, midnight))
|
||||
cls.days_long.append(e1.completed - e1.assigned)
|
||||
# tests an edge case on sqlite.
|
||||
delay = datetime.timedelta(1)
|
||||
end = stime + delay + delta1
|
||||
e1 = Experiment.objects.create(
|
||||
name='e1', assigned=sday, start=stime + delay, end=end,
|
||||
completed=end.date(), estimated_time=delta1,
|
||||
)
|
||||
cls.deltas.append(delta1)
|
||||
cls.delays.append(e1.start - datetime.datetime.combine(e1.assigned, midnight))
|
||||
cls.days_long.append(e1.completed - e1.assigned)
|
||||
|
||||
# e2: started three days after assigned, small duration
|
||||
end = stime + delta2
|
||||
|
@ -1144,8 +1141,6 @@ class FTimeDeltaTests(TestCase):
|
|||
def test_mixed_comparisons1(self):
|
||||
for i in range(len(self.delays)):
|
||||
delay = self.delays[i]
|
||||
if not connection.features.supports_microsecond_precision:
|
||||
delay = datetime.timedelta(delay.days, delay.seconds)
|
||||
test_set = [e.name for e in Experiment.objects.filter(assigned__gt=F('start') - delay)]
|
||||
self.assertEqual(test_set, self.expnames[:i])
|
||||
|
||||
|
@ -1213,27 +1208,21 @@ class FTimeDeltaTests(TestCase):
|
|||
self.assertEqual(at_least_120_days, {'e5'})
|
||||
|
||||
less_than_5_days = {e.name for e in queryset.filter(completion_duration__lt=datetime.timedelta(days=5))}
|
||||
expected = {'e0', 'e2'}
|
||||
if connection.features.supports_microsecond_precision:
|
||||
expected.add('e1')
|
||||
self.assertEqual(less_than_5_days, expected)
|
||||
self.assertEqual(less_than_5_days, {'e0', 'e1', 'e2'})
|
||||
|
||||
@skipUnlessDBFeature('supports_temporal_subtraction')
|
||||
def test_time_subtraction(self):
|
||||
if connection.features.supports_microsecond_precision:
|
||||
time = datetime.time(12, 30, 15, 2345)
|
||||
timedelta = datetime.timedelta(hours=1, minutes=15, seconds=15, microseconds=2345)
|
||||
else:
|
||||
time = datetime.time(12, 30, 15)
|
||||
timedelta = datetime.timedelta(hours=1, minutes=15, seconds=15)
|
||||
Time.objects.create(time=time)
|
||||
Time.objects.create(time=datetime.time(12, 30, 15, 2345))
|
||||
queryset = Time.objects.annotate(
|
||||
difference=ExpressionWrapper(
|
||||
F('time') - Value(datetime.time(11, 15, 0), output_field=models.TimeField()),
|
||||
output_field=models.DurationField(),
|
||||
)
|
||||
)
|
||||
self.assertEqual(queryset.get().difference, timedelta)
|
||||
self.assertEqual(
|
||||
queryset.get().difference,
|
||||
datetime.timedelta(hours=1, minutes=15, seconds=15, microseconds=2345)
|
||||
)
|
||||
|
||||
@skipUnlessDBFeature('supports_temporal_subtraction')
|
||||
def test_datetime_subtraction(self):
|
||||
|
@ -1274,10 +1263,9 @@ class FTimeDeltaTests(TestCase):
|
|||
new_start=F('start_sub_hours') + datetime.timedelta(days=-2),
|
||||
)
|
||||
expected_start = datetime.datetime(2010, 6, 23, 9, 45, 0)
|
||||
if connection.features.supports_microsecond_precision:
|
||||
# subtract 30 microseconds
|
||||
experiments = experiments.annotate(new_start=F('new_start') + datetime.timedelta(microseconds=-30))
|
||||
expected_start += datetime.timedelta(microseconds=+746970)
|
||||
# subtract 30 microseconds
|
||||
experiments = experiments.annotate(new_start=F('new_start') + datetime.timedelta(microseconds=-30))
|
||||
expected_start += datetime.timedelta(microseconds=+746970)
|
||||
experiments.update(start=F('new_start'))
|
||||
e0 = Experiment.objects.get(name='e0')
|
||||
self.assertEqual(e0.start, expected_start)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue