diff options
author | Simon Charette <charette.s@gmail.com> | 2020-06-16 10:01:34 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-06-16 10:08:02 +0200 |
commit | ea3beb4f5a61870c87ba028369de4d2c2f316ad0 (patch) | |
tree | 6e3315aa9757a503698860d0f277254f26621c7c /tests/db_functions | |
parent | 0d6d4e78b17d7500e1a503fd2b02fdcf822d9d3c (diff) | |
download | django-ea3beb4f5a61870c87ba028369de4d2c2f316ad0.tar.gz |
Refs #30446 -- Defined default output_field of text database functions.
This prevented the default behavior of
BaseExpression._resolve_output_field from error'ing out when such
functions accepted both expressions from mixed types
(e.g. SubStr(CharField, IntegerField, IntegerField)).
Diffstat (limited to 'tests/db_functions')
-rw-r--r-- | tests/db_functions/text/test_left.py | 4 | ||||
-rw-r--r-- | tests/db_functions/text/test_pad.py | 4 | ||||
-rw-r--r-- | tests/db_functions/text/test_repeat.py | 6 | ||||
-rw-r--r-- | tests/db_functions/text/test_right.py | 4 | ||||
-rw-r--r-- | tests/db_functions/text/test_substr.py | 4 |
5 files changed, 11 insertions, 11 deletions
diff --git a/tests/db_functions/text/test_left.py b/tests/db_functions/text/test_left.py index 5bb3d6c4fa..873bbf859b 100644 --- a/tests/db_functions/text/test_left.py +++ b/tests/db_functions/text/test_left.py @@ -1,4 +1,4 @@ -from django.db.models import CharField, Value +from django.db.models import IntegerField, Value from django.db.models.functions import Left, Lower from django.test import TestCase @@ -23,5 +23,5 @@ class LeftTests(TestCase): Author.objects.annotate(raises=Left('name', 0)) def test_expressions(self): - authors = Author.objects.annotate(name_part=Left('name', Value(3), output_field=CharField())) + authors = Author.objects.annotate(name_part=Left('name', Value(3, output_field=IntegerField()))) self.assertQuerysetEqual(authors.order_by('name'), ['Joh', 'Rho'], lambda a: a.name_part) diff --git a/tests/db_functions/text/test_pad.py b/tests/db_functions/text/test_pad.py index 88309e5641..17c33a30d8 100644 --- a/tests/db_functions/text/test_pad.py +++ b/tests/db_functions/text/test_pad.py @@ -1,5 +1,5 @@ from django.db import connection -from django.db.models import CharField, Value +from django.db.models import Value from django.db.models.functions import Length, LPad, RPad from django.test import TestCase @@ -42,7 +42,7 @@ class PadTests(TestCase): def test_combined_with_length(self): Author.objects.create(name='Rhonda', alias='john_smith') Author.objects.create(name='♥♣♠', alias='bytes') - authors = Author.objects.annotate(filled=LPad('name', Length('alias'), output_field=CharField())) + authors = Author.objects.annotate(filled=LPad('name', Length('alias'))) self.assertQuerysetEqual( authors.order_by('alias'), [' ♥♣♠', ' Rhonda'], diff --git a/tests/db_functions/text/test_repeat.py b/tests/db_functions/text/test_repeat.py index d302e6da28..c1e136c8f0 100644 --- a/tests/db_functions/text/test_repeat.py +++ b/tests/db_functions/text/test_repeat.py @@ -1,5 +1,5 @@ from django.db import connection -from django.db.models import CharField, Value +from django.db.models import Value from django.db.models.functions import Length, Repeat from django.test import TestCase @@ -13,8 +13,8 @@ class RepeatTests(TestCase): tests = ( (Repeat('name', 0), ''), (Repeat('name', 2), 'JohnJohn'), - (Repeat('name', Length('alias'), output_field=CharField()), 'JohnJohnJohn'), - (Repeat(Value('x'), 3, output_field=CharField()), 'xxx'), + (Repeat('name', Length('alias')), 'JohnJohnJohn'), + (Repeat(Value('x'), 3), 'xxx'), (Repeat('name', None), none_value), (Repeat('goes_by', 1), none_value), ) diff --git a/tests/db_functions/text/test_right.py b/tests/db_functions/text/test_right.py index 6dcbcc18f5..ab29cb9456 100644 --- a/tests/db_functions/text/test_right.py +++ b/tests/db_functions/text/test_right.py @@ -1,4 +1,4 @@ -from django.db.models import CharField, Value +from django.db.models import IntegerField, Value from django.db.models.functions import Lower, Right from django.test import TestCase @@ -23,5 +23,5 @@ class RightTests(TestCase): Author.objects.annotate(raises=Right('name', 0)) def test_expressions(self): - authors = Author.objects.annotate(name_part=Right('name', Value(3), output_field=CharField())) + authors = Author.objects.annotate(name_part=Right('name', Value(3, output_field=IntegerField()))) self.assertQuerysetEqual(authors.order_by('name'), ['ith', 'nda'], lambda a: a.name_part) diff --git a/tests/db_functions/text/test_substr.py b/tests/db_functions/text/test_substr.py index 5cc12c0288..35af5656ef 100644 --- a/tests/db_functions/text/test_substr.py +++ b/tests/db_functions/text/test_substr.py @@ -1,4 +1,4 @@ -from django.db.models import CharField, Value as V +from django.db.models import Value as V from django.db.models.functions import Lower, StrIndex, Substr, Upper from django.test import TestCase @@ -45,7 +45,7 @@ class SubstrTests(TestCase): def test_expressions(self): Author.objects.create(name='John Smith', alias='smithj') Author.objects.create(name='Rhonda') - substr = Substr(Upper('name'), StrIndex('name', V('h')), 5, output_field=CharField()) + substr = Substr(Upper('name'), StrIndex('name', V('h')), 5) authors = Author.objects.annotate(name_part=substr) self.assertQuerysetEqual( authors.order_by('name'), ['HN SM', 'HONDA'], |