summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2024-01-13 16:16:58 -0500
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2024-01-16 08:34:14 +0100
commit0fcee1676c7f14bb08e2cc662898dee56d9cf207 (patch)
tree5536612166bc4867578cddbdaedc062c3e7621a0 /tests
parent561f77041542f9081288af2af97a289544a57e2a (diff)
Fixed #35111 -- Fixed compilation of DateField __in/__range rhs on SQLite and MySQL.
Also removed tests that ensured that adapt_(date)timefield backend operations where able to deal with expressions when it's not the case for any other adapt methods.
Diffstat (limited to 'tests')
-rw-r--r--tests/backends/base/test_operations.py10
-rw-r--r--tests/expressions/tests.py18
2 files changed, 15 insertions, 13 deletions
diff --git a/tests/backends/base/test_operations.py b/tests/backends/base/test_operations.py
index d2a3fb6765..8df02ee76b 100644
--- a/tests/backends/base/test_operations.py
+++ b/tests/backends/base/test_operations.py
@@ -4,7 +4,7 @@ from unittest import mock
from django.core.management.color import no_style
from django.db import NotSupportedError, connection, transaction
from django.db.backends.base.operations import BaseDatabaseOperations
-from django.db.models import DurationField, Value
+from django.db.models import DurationField
from django.db.models.expressions import Col
from django.db.models.lookups import Exact
from django.test import (
@@ -89,17 +89,9 @@ class SimpleDatabaseOperationTests(SimpleTestCase):
def test_adapt_timefield_value_none(self):
self.assertIsNone(self.ops.adapt_timefield_value(None))
- def test_adapt_timefield_value_expression(self):
- value = Value(timezone.now().time())
- self.assertEqual(self.ops.adapt_timefield_value(value), value)
-
def test_adapt_datetimefield_value_none(self):
self.assertIsNone(self.ops.adapt_datetimefield_value(None))
- def test_adapt_datetimefield_value_expression(self):
- value = Value(timezone.now())
- self.assertEqual(self.ops.adapt_datetimefield_value(value), value)
-
def test_adapt_timefield_value(self):
msg = "Django does not support timezone-aware times."
with self.assertRaisesMessage(ValueError, msg):
diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py
index 5ba786db13..909e317dca 100644
--- a/tests/expressions/tests.py
+++ b/tests/expressions/tests.py
@@ -1225,7 +1225,7 @@ class IterableLookupInnerExpressionsTests(TestCase):
queryset = Company.objects.filter(name__in=[F("num_chairs") + "1)) OR ((1==1"])
self.assertQuerySetEqual(queryset, [], ordered=False)
- def test_range_lookup_allows_F_expressions_and_expressions_for_datetimes(self):
+ def test_range_lookup_allows_F_expressions_and_expressions_for_dates(self):
start = datetime.datetime(2016, 2, 3, 15, 0, 0)
end = datetime.datetime(2016, 2, 5, 15, 0, 0)
experiment_1 = Experiment.objects.create(
@@ -1256,9 +1256,19 @@ class IterableLookupInnerExpressionsTests(TestCase):
experiment=experiment_2,
result_time=datetime.datetime(2016, 1, 8, 5, 0, 0),
)
- within_experiment_time = [F("experiment__start"), F("experiment__end")]
- queryset = Result.objects.filter(result_time__range=within_experiment_time)
- self.assertSequenceEqual(queryset, [r1])
+ tests = [
+ # Datetimes.
+ ([F("experiment__start"), F("experiment__end")], "result_time__range"),
+ # Dates.
+ (
+ [F("experiment__start__date"), F("experiment__end__date")],
+ "result_time__date__range",
+ ),
+ ]
+ for within_experiment_time, lookup in tests:
+ with self.subTest(lookup=lookup):
+ queryset = Result.objects.filter(**{lookup: within_experiment_time})
+ self.assertSequenceEqual(queryset, [r1])
class FTests(SimpleTestCase):