diff options
| author | Hasan Ramezani <hasan.r67@gmail.com> | 2019-12-05 09:54:27 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-12-05 15:50:39 +0100 |
| commit | 5d674eac871a306405b0fbbaeb17bbeba9c68bf3 (patch) | |
| tree | 39f827b82af94b862d9e373d30fef52226e4bcdb /tests/postgres_tests/test_ranges.py | |
| parent | 664521c56aa72e7749292e4b8d92f093421463b5 (diff) | |
Fixed #31039 -- Added support for contained_by lookup with AutoFields, SmallIntegerField, and DecimalField.
Diffstat (limited to 'tests/postgres_tests/test_ranges.py')
| -rw-r--r-- | tests/postgres_tests/test_ranges.py | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/tests/postgres_tests/test_ranges.py b/tests/postgres_tests/test_ranges.py index 789ff3d546..7257d66505 100644 --- a/tests/postgres_tests/test_ranges.py +++ b/tests/postgres_tests/test_ranges.py @@ -11,7 +11,10 @@ from django.test.utils import isolate_apps from django.utils import timezone from . import PostgreSQLSimpleTestCase, PostgreSQLTestCase -from .models import PostgreSQLModel, RangeLookupsModel, RangesModel +from .models import ( + BigAutoFieldModel, PostgreSQLModel, RangeLookupsModel, RangesModel, + SmallAutoFieldModel, +) try: from psycopg2.extras import DateRange, DateTimeTZRange, NumericRange @@ -354,6 +357,17 @@ class TestQueryingWithRanges(PostgreSQLTestCase): [objs[0]], ) + def test_small_integer_field_contained_by(self): + objs = [ + RangeLookupsModel.objects.create(small_integer=8), + RangeLookupsModel.objects.create(small_integer=4), + RangeLookupsModel.objects.create(small_integer=-1), + ] + self.assertSequenceEqual( + RangeLookupsModel.objects.filter(small_integer__contained_by=NumericRange(4, 6)), + [objs[1]], + ) + def test_integer_range(self): objs = [ RangeLookupsModel.objects.create(integer=5), @@ -376,6 +390,19 @@ class TestQueryingWithRanges(PostgreSQLTestCase): [objs[0]] ) + def test_decimal_field_contained_by(self): + objs = [ + RangeLookupsModel.objects.create(decimal_field=Decimal('1.33')), + RangeLookupsModel.objects.create(decimal_field=Decimal('2.88')), + RangeLookupsModel.objects.create(decimal_field=Decimal('99.17')), + ] + self.assertSequenceEqual( + RangeLookupsModel.objects.filter( + decimal_field__contained_by=NumericRange(Decimal('1.89'), Decimal('7.91')), + ), + [objs[1]], + ) + def test_float_range(self): objs = [ RangeLookupsModel.objects.create(float=5), @@ -387,6 +414,39 @@ class TestQueryingWithRanges(PostgreSQLTestCase): [objs[0]] ) + def test_small_auto_field_contained_by(self): + objs = SmallAutoFieldModel.objects.bulk_create([ + SmallAutoFieldModel() for i in range(1, 5) + ]) + self.assertSequenceEqual( + SmallAutoFieldModel.objects.filter( + id__contained_by=NumericRange(objs[1].pk, objs[3].pk), + ), + objs[1:3], + ) + + def test_auto_field_contained_by(self): + objs = RangeLookupsModel.objects.bulk_create([ + RangeLookupsModel() for i in range(1, 5) + ]) + self.assertSequenceEqual( + RangeLookupsModel.objects.filter( + id__contained_by=NumericRange(objs[1].pk, objs[3].pk), + ), + objs[1:3], + ) + + def test_big_auto_field_contained_by(self): + objs = BigAutoFieldModel.objects.bulk_create([ + BigAutoFieldModel() for i in range(1, 5) + ]) + self.assertSequenceEqual( + BigAutoFieldModel.objects.filter( + id__contained_by=NumericRange(objs[1].pk, objs[3].pk), + ), + objs[1:3], + ) + def test_f_ranges(self): parent = RangesModel.objects.create(decimals=NumericRange(0, 10)) objs = [ |
