diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2018-04-03 19:36:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-03 19:36:12 +0200 |
| commit | 55cc26941a1eb6093bf9602e67a2b5fdf7e68683 (patch) | |
| tree | a7e74536922b6bc467538966e795434dc03ad40a /tests | |
| parent | 6141c752fe7091d2197f5ac061300a9e0a36b09b (diff) | |
Refs #28643 -- Added Repeat database function.
Thanks Tim Graham and Nick Pope for reviews.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/db_functions/test_repeat.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/db_functions/test_repeat.py b/tests/db_functions/test_repeat.py new file mode 100644 index 0000000000..d3f294c409 --- /dev/null +++ b/tests/db_functions/test_repeat.py @@ -0,0 +1,24 @@ +from django.db.models import CharField, Value +from django.db.models.functions import Length, Repeat +from django.test import TestCase + +from .models import Author + + +class RepeatTests(TestCase): + def test_basic(self): + Author.objects.create(name='John', alias='xyz') + tests = ( + (Repeat('name', 0), ''), + (Repeat('name', 2), 'JohnJohn'), + (Repeat('name', Length('alias'), output_field=CharField()), 'JohnJohnJohn'), + (Repeat(Value('x'), 3, output_field=CharField()), 'xxx'), + ) + for function, repeated_text in tests: + with self.subTest(function=function): + authors = Author.objects.annotate(repeated_text=function) + self.assertQuerysetEqual(authors, [repeated_text], lambda a: a.repeated_text, ordered=False) + + def test_negative_number(self): + with self.assertRaisesMessage(ValueError, "'number' must be greater or equal to 0."): + Repeat('name', -1) |
