diff options
| author | Nick Pope <nick@nickpope.me.uk> | 2023-06-08 14:43:13 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-06-12 05:29:30 +0200 |
| commit | e0e0204477e47a9f8c3302236a31a42514b94c25 (patch) | |
| tree | f70501d31b8eec7c27e0803cc486bafce923ac83 /tests/utils_tests/test_functional.py | |
| parent | 1d9d32389c652edc56ada65116d39789896f4820 (diff) | |
Added more tests for django.utils.functional.lazy().
Diffstat (limited to 'tests/utils_tests/test_functional.py')
| -rw-r--r-- | tests/utils_tests/test_functional.py | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/tests/utils_tests/test_functional.py b/tests/utils_tests/test_functional.py index 9a5cbfe068..d49c2a5b49 100644 --- a/tests/utils_tests/test_functional.py +++ b/tests/utils_tests/test_functional.py @@ -192,11 +192,61 @@ class FunctionalTests(SimpleTestCase): with self.assertRaisesMessage(TypeError, msg): Foo().cp - def test_lazy_add(self): + def test_lazy_add_int(self): lazy_4 = lazy(lambda: 4, int) lazy_5 = lazy(lambda: 5, int) + self.assertEqual(4 + lazy_5(), 9) + self.assertEqual(lazy_4() + 5, 9) self.assertEqual(lazy_4() + lazy_5(), 9) + def test_lazy_add_list(self): + lazy_4 = lazy(lambda: [4], list) + lazy_5 = lazy(lambda: [5], list) + self.assertEqual([4] + lazy_5(), [4, 5]) + self.assertEqual(lazy_4() + [5], [4, 5]) + self.assertEqual(lazy_4() + lazy_5(), [4, 5]) + + def test_lazy_add_str(self): + lazy_a = lazy(lambda: "a", str) + lazy_b = lazy(lambda: "b", str) + self.assertEqual("a" + lazy_b(), "ab") + self.assertEqual(lazy_a() + "b", "ab") + self.assertEqual(lazy_a() + lazy_b(), "ab") + + def test_lazy_mod_int(self): + lazy_4 = lazy(lambda: 4, int) + lazy_5 = lazy(lambda: 5, int) + self.assertEqual(4 % lazy_5(), 4) + self.assertEqual(lazy_4() % 5, 4) + self.assertEqual(lazy_4() % lazy_5(), 4) + + def test_lazy_mod_str(self): + lazy_a = lazy(lambda: "a%s", str) + lazy_b = lazy(lambda: "b", str) + self.assertEqual("a%s" % lazy_b(), "ab") + self.assertEqual(lazy_a() % "b", "ab") + self.assertEqual(lazy_a() % lazy_b(), "ab") + + def test_lazy_mul_int(self): + lazy_4 = lazy(lambda: 4, int) + lazy_5 = lazy(lambda: 5, int) + self.assertEqual(4 * lazy_5(), 20) + self.assertEqual(lazy_4() * 5, 20) + + def test_lazy_mul_list(self): + lazy_4 = lazy(lambda: [4], list) + lazy_5 = lazy(lambda: 5, int) + self.assertEqual([4] * lazy_5(), [4, 4, 4, 4, 4]) + self.assertEqual(lazy_4() * 5, [4, 4, 4, 4, 4]) + self.assertEqual(lazy_4() * lazy_5(), [4, 4, 4, 4, 4]) + + def test_lazy_mul_str(self): + lazy_a = lazy(lambda: "a", str) + lazy_5 = lazy(lambda: 5, int) + self.assertEqual("a" * lazy_5(), "aaaaa") + self.assertEqual(lazy_a() * 5, "aaaaa") + self.assertEqual(lazy_a() * lazy_5(), "aaaaa") + def test_lazy_equality(self): """ == and != work correctly for Promises. |
