aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTom Christie2014-12-05 14:15:58 +0000
committerTom Christie2014-12-05 14:15:58 +0000
commit544967f36ed6e29819018428d48da00de74958b9 (patch)
tree20005a2ab9731b326de9187c29cbaa4aa046226c /tests
parentc611a2c1fe7370bbe3151cb04b546e3e400acf1e (diff)
downloaddjango-rest-framework-544967f36ed6e29819018428d48da00de74958b9.tar.bz2
Test tweaks
Diffstat (limited to 'tests')
-rw-r--r--tests/test_model_serializer.py50
-rw-r--r--tests/test_serializer_metaclass.py62
2 files changed, 50 insertions, 62 deletions
diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py
index 1bcd58e0..da79164a 100644
--- a/tests/test_model_serializer.py
+++ b/tests/test_model_serializer.py
@@ -559,3 +559,53 @@ class TestBulkCreate(TestCase):
# Serializer returns correct data.
assert serializer.data == data
+
+
+class TestMetaClassModel(models.Model):
+ text = models.CharField(max_length=100)
+
+
+class TestSerializerMetaClass(TestCase):
+ def test_meta_class_fields_option(self):
+ class ExampleSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = TestMetaClassModel
+ fields = 'text'
+
+ with self.assertRaises(TypeError) as result:
+ ExampleSerializer().fields
+
+ exception = result.exception
+ assert str(exception).startswith(
+ "The `fields` option must be a list or tuple"
+ )
+
+ def test_meta_class_exclude_option(self):
+ class ExampleSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = TestMetaClassModel
+ exclude = 'text'
+
+ with self.assertRaises(TypeError) as result:
+ ExampleSerializer().fields
+
+ exception = result.exception
+ assert str(exception).startswith(
+ "The `exclude` option must be a list or tuple"
+ )
+
+ def test_meta_class_fields_and_exclude_options(self):
+ class ExampleSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = TestMetaClassModel
+ fields = ('text',)
+ exclude = ('text',)
+
+ with self.assertRaises(AssertionError) as result:
+ ExampleSerializer().fields
+
+ exception = result.exception
+ self.assertEqual(
+ str(exception),
+ "Cannot set both 'fields' and 'exclude'."
+ )
diff --git a/tests/test_serializer_metaclass.py b/tests/test_serializer_metaclass.py
deleted file mode 100644
index bd2fbed7..00000000
--- a/tests/test_serializer_metaclass.py
+++ /dev/null
@@ -1,62 +0,0 @@
-from django.test import TestCase
-from rest_framework import serializers
-from .models import BasicModel
-
-
-class TestSerializerMetaClass(TestCase):
- def setUp(self):
- class FieldsSerializer(serializers.ModelSerializer):
- text = serializers.CharField()
-
- class Meta:
- model = BasicModel
- fields = ('text')
-
- class ExcludeSerializer(serializers.ModelSerializer):
- text = serializers.CharField()
-
- class Meta:
- model = BasicModel
- exclude = ('text')
-
- class FieldsAndExcludeSerializer(serializers.ModelSerializer):
- text = serializers.CharField()
-
- class Meta:
- model = BasicModel
- fields = ('text',)
- exclude = ('text',)
-
- self.fields_serializer = FieldsSerializer
- self.exclude_serializer = ExcludeSerializer
- self.faeSerializer = FieldsAndExcludeSerializer
-
- def test_meta_class_fields(self):
- object = BasicModel(text="Hello World.")
- serializer = self.fields_serializer(instance=object)
-
- with self.assertRaises(TypeError) as result:
- serializer.data
-
- exception = result.exception
- self.assertEqual(str(exception), "`fields` must be a list or tuple")
-
- def test_meta_class_exclude(self):
- object = BasicModel(text="Hello World.")
- serializer = self.exclude_serializer(instance=object)
-
- with self.assertRaises(TypeError) as result:
- serializer.data
-
- exception = result.exception
- self.assertEqual(str(exception), "`exclude` must be a list or tuple")
-
- def test_meta_class_fields_and_exclude(self):
- object = BasicModel(text="Hello World.")
- serializer = self.faeSerializer(instance=object)
-
- with self.assertRaises(AssertionError) as result:
- serializer.data
-
- exception = result.exception
- self.assertEqual(str(exception), "Cannot set both 'fields' and 'exclude'.")