mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 12:30:11 +03:00
Test postgres field mapping
This commit is contained in:
parent
7855d3bd8b
commit
7df7e252f6
|
@ -1,5 +1,6 @@
|
|||
# Optional packages which may be used with REST framework.
|
||||
pytz==2017.2
|
||||
psycopg2==2.7.3
|
||||
markdown==2.6.4
|
||||
django-guardian==1.4.9
|
||||
django-filter==1.1.0
|
||||
|
|
|
@ -21,7 +21,7 @@ from django.test import TestCase
|
|||
from django.utils import six
|
||||
|
||||
from rest_framework import serializers
|
||||
from rest_framework.compat import unicode_repr
|
||||
from rest_framework.compat import postgres_fields, unicode_repr
|
||||
|
||||
|
||||
def dedent(blocktext):
|
||||
|
@ -379,6 +379,54 @@ class TestGenericIPAddressFieldValidation(TestCase):
|
|||
'{0}'.format(s.errors))
|
||||
|
||||
|
||||
@pytest.mark.skipUnless(postgres_fields, 'postgres is required')
|
||||
class TestPosgresFieldsMapping(TestCase):
|
||||
def test_hstore_field(self):
|
||||
class HStoreFieldModel(models.Model):
|
||||
hstore_field = postgres_fields.HStoreField()
|
||||
|
||||
class TestSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = HStoreFieldModel
|
||||
fields = ['hstore_field']
|
||||
|
||||
expected = dedent("""
|
||||
TestSerializer():
|
||||
hstore_field = CharMappingField()
|
||||
""")
|
||||
self.assertEqual(unicode_repr(TestSerializer()), expected)
|
||||
|
||||
def test_array_field(self):
|
||||
class ArrayFieldModel(models.Model):
|
||||
array_field = postgres_fields.ArrayField(base_field=models.CharField())
|
||||
|
||||
class TestSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ArrayFieldModel
|
||||
fields = ['array_field']
|
||||
|
||||
expected = dedent("""
|
||||
TestSerializer():
|
||||
array_field = ListField(child=CharField(label='Array field', validators=[<django.core.validators.MaxLengthValidator object>]))
|
||||
""")
|
||||
self.assertEqual(unicode_repr(TestSerializer()), expected)
|
||||
|
||||
def test_json_field(self):
|
||||
class JSONFieldModel(models.Model):
|
||||
json_field = postgres_fields.JSONField()
|
||||
|
||||
class TestSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = JSONFieldModel
|
||||
fields = ['json_field']
|
||||
|
||||
expected = dedent("""
|
||||
TestSerializer():
|
||||
json_field = JSONField(style={'base_template': 'textarea.html'})
|
||||
""")
|
||||
self.assertEqual(unicode_repr(TestSerializer()), expected)
|
||||
|
||||
|
||||
# Tests for relational field mappings.
|
||||
# ------------------------------------
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user