MCPcopy
hub / github.com/django/django / test_durationfield_add

Method test_durationfield_add

tests/expressions/tests.py:2170–2197  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2168 list(Experiment.objects.filter(start=F("start") * datetime.timedelta(0)))
2169
2170 def test_durationfield_add(self):
2171 zeros = [
2172 e.name
2173 for e in Experiment.objects.filter(start=F("start") + F("estimated_time"))
2174 ]
2175 self.assertEqual(zeros, ["e0"])
2176
2177 end_less = [
2178 e.name
2179 for e in Experiment.objects.filter(end__lt=F("start") + F("estimated_time"))
2180 ]
2181 self.assertEqual(end_less, ["e2"])
2182
2183 delta_math = [
2184 e.name
2185 for e in Experiment.objects.filter(
2186 end__gte=F("start") + F("estimated_time") + datetime.timedelta(hours=1)
2187 )
2188 ]
2189 self.assertEqual(delta_math, ["e4"])
2190
2191 queryset = Experiment.objects.annotate(
2192 shifted=ExpressionWrapper(
2193 F("start") + Value(None, output_field=DurationField()),
2194 output_field=DateTimeField(),
2195 )
2196 )
2197 self.assertIsNone(queryset.first().shifted)
2198
2199 def test_durationfield_multiply_divide(self):
2200 Experiment.objects.update(scalar=2)

Callers

nothing calls this directly

Calls 8

FClass · 0.90
ExpressionWrapperClass · 0.90
ValueClass · 0.90
DurationFieldClass · 0.90
DateTimeFieldClass · 0.90
annotateMethod · 0.80
firstMethod · 0.80
filterMethod · 0.45

Tested by

no test coverage detected