summaryrefslogtreecommitdiff
path: root/tests/postgres_tests/test_ranges.py
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2019-12-05 09:54:27 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-12-05 15:50:39 +0100
commit5d674eac871a306405b0fbbaeb17bbeba9c68bf3 (patch)
tree39f827b82af94b862d9e373d30fef52226e4bcdb /tests/postgres_tests/test_ranges.py
parent664521c56aa72e7749292e4b8d92f093421463b5 (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.py62
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 = [