diff options
author | Adam Johnson <me@adamj.eu> | 2021-12-10 09:13:09 +0000 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-12-22 11:46:18 +0100 |
commit | a8fa3e5cd77416b9e4a5b28b216fb3e19609a37d (patch) | |
tree | a6cb44a12f0bbf7bc4796c82f8ae42791363ec36 /tests/expressions | |
parent | 78f062f63e7dea09c219fd1310d43950817f4c78 (diff) | |
download | django-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.py | 12 |
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.' |