summaryrefslogtreecommitdiff
path: root/tests/expressions
diff options
context:
space:
mode:
authorAdam Johnson <me@adamj.eu>2021-12-10 09:13:09 +0000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-12-22 11:46:18 +0100
commita8fa3e5cd77416b9e4a5b28b216fb3e19609a37d (patch)
treea6cb44a12f0bbf7bc4796c82f8ae42791363ec36 /tests/expressions
parent78f062f63e7dea09c219fd1310d43950817f4c78 (diff)
downloaddjango-a8fa3e5cd77416b9e4a5b28b216fb3e19609a37d.tar.gz
Refs #33355 -- Added missing tests for database functions and expression on null values.
Diffstat (limited to 'tests/expressions')
-rw-r--r--tests/expressions/tests.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py
index dab5474ef4..13c7e2b212 100644
--- a/tests/expressions/tests.py
+++ b/tests/expressions/tests.py
@@ -1246,6 +1246,12 @@ class ExpressionOperatorTests(TestCase):
Number.objects.filter(pk=self.n.pk).update(integer=F('integer') % 20)
self.assertEqual(Number.objects.get(pk=self.n.pk).integer, 2)
+ def test_lefthand_modulo_null(self):
+ # LH Modulo arithmetic on integers.
+ Employee.objects.create(firstname='John', lastname='Doe', salary=None)
+ qs = Employee.objects.annotate(modsalary=F('salary') % 20)
+ self.assertIsNone(qs.get().salary)
+
def test_lefthand_bitwise_and(self):
# LH Bitwise ands on integers
Number.objects.filter(pk=self.n.pk).update(integer=F('integer').bitand(56))
@@ -1294,6 +1300,12 @@ class ExpressionOperatorTests(TestCase):
employee.refresh_from_db()
self.assertIsNone(employee.salary)
+ def test_lefthand_bitwise_xor_right_null(self):
+ employee = Employee.objects.create(firstname='John', lastname='Doe', salary=48)
+ Employee.objects.update(salary=F('salary').bitxor(None))
+ employee.refresh_from_db()
+ self.assertIsNone(employee.salary)
+
@unittest.skipUnless(connection.vendor == 'oracle', "Oracle doesn't support bitwise XOR.")
def test_lefthand_bitwise_xor_not_supported(self):
msg = 'Bitwise XOR is not supported in Oracle.'