mirror of
https://github.com/django/django.git
synced 2025-08-27 14:04:41 +00:00
Fixed #25143 -- Added ArrayField.from_db_value().
Thanks Karan Lyons for contributing to the patch.
This commit is contained in:
parent
f8d20da047
commit
2495023a4c
4 changed files with 65 additions and 1 deletions
|
@ -15,7 +15,7 @@ from . import PostgreSQLTestCase
|
|||
from .models import (
|
||||
ArrayFieldSubclass, CharArrayModel, DateTimeArrayModel, IntegerArrayModel,
|
||||
NestedIntegerArrayModel, NullableIntegerArrayModel, OtherTypesArrayModel,
|
||||
PostgreSQLModel,
|
||||
PostgreSQLModel, Tag,
|
||||
)
|
||||
|
||||
try:
|
||||
|
@ -92,12 +92,24 @@ class TestSaveLoad(PostgreSQLTestCase):
|
|||
ips=['192.168.0.1', '::1'],
|
||||
uuids=[uuid.uuid4()],
|
||||
decimals=[decimal.Decimal(1.25), 1.75],
|
||||
tags=[Tag(1), Tag(2), Tag(3)],
|
||||
)
|
||||
instance.save()
|
||||
loaded = OtherTypesArrayModel.objects.get()
|
||||
self.assertEqual(instance.ips, loaded.ips)
|
||||
self.assertEqual(instance.uuids, loaded.uuids)
|
||||
self.assertEqual(instance.decimals, loaded.decimals)
|
||||
self.assertEqual(instance.tags, loaded.tags)
|
||||
|
||||
def test_null_from_db_value_handling(self):
|
||||
instance = OtherTypesArrayModel.objects.create(
|
||||
ips=['192.168.0.1', '::1'],
|
||||
uuids=[uuid.uuid4()],
|
||||
decimals=[decimal.Decimal(1.25), 1.75],
|
||||
tags=None,
|
||||
)
|
||||
instance.refresh_from_db()
|
||||
self.assertIsNone(instance.tags)
|
||||
|
||||
def test_model_set_on_base_field(self):
|
||||
instance = IntegerArrayModel()
|
||||
|
@ -306,11 +318,13 @@ class TestOtherTypesExactQuerying(PostgreSQLTestCase):
|
|||
self.ips = ['192.168.0.1', '::1']
|
||||
self.uuids = [uuid.uuid4()]
|
||||
self.decimals = [decimal.Decimal(1.25), 1.75]
|
||||
self.tags = [Tag(1), Tag(2), Tag(3)]
|
||||
self.objs = [
|
||||
OtherTypesArrayModel.objects.create(
|
||||
ips=self.ips,
|
||||
uuids=self.uuids,
|
||||
decimals=self.decimals,
|
||||
tags=self.tags,
|
||||
)
|
||||
]
|
||||
|
||||
|
@ -332,6 +346,12 @@ class TestOtherTypesExactQuerying(PostgreSQLTestCase):
|
|||
self.objs
|
||||
)
|
||||
|
||||
def test_exact_tags(self):
|
||||
self.assertSequenceEqual(
|
||||
OtherTypesArrayModel.objects.filter(tags=self.tags),
|
||||
self.objs
|
||||
)
|
||||
|
||||
|
||||
@isolate_apps('postgres_tests')
|
||||
class TestChecks(PostgreSQLTestCase):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue