blob: bd2fbed7b1f6d44b21503793fe0485b0796a4020 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
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'.")
|