From 544967f36ed6e29819018428d48da00de74958b9 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 5 Dec 2014 14:15:58 +0000 Subject: Test tweaks --- tests/test_model_serializer.py | 50 ++++++++++++++++++++++++++++++ tests/test_serializer_metaclass.py | 62 -------------------------------------- 2 files changed, 50 insertions(+), 62 deletions(-) delete mode 100644 tests/test_serializer_metaclass.py (limited to 'tests') 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'.") -- cgit v1.2.3