2
2
3
3
from formidable .register import FieldSerializerRegister , load_serializer
4
4
from formidable .serializers import FormidableSerializer
5
+ from formidable .serializers .forms import ContextFormSerializer
5
6
from formidable .serializers .fields import BASE_FIELDS , FieldSerializer
6
7
7
8
import mock
@@ -60,10 +61,10 @@ def test_register(self):
60
61
61
62
def test_custom_field_serialize (self ):
62
63
serializer = FormidableSerializer (data = self .schema )
63
- serializer .is_valid ()
64
+ assert serializer .is_valid ()
64
65
serializer .save ()
65
66
# get field instance
66
- self . instance = serializer .instance
67
+ instance = serializer .instance
67
68
custom_field = serializer .instance .fields .first ()
68
69
# test field instance
69
70
self .assertIn ('meta_info' , custom_field .parameters )
@@ -80,7 +81,35 @@ def test_custom_field_serialize(self):
80
81
self .assertIn ('some_another_data' , data )
81
82
self .assertIn ('parameters' , data )
82
83
# remove instance
83
- self .instance .delete ()
84
+ instance .delete ()
85
+
86
+ def test_custom_field_serialize_contextserializer (self ):
87
+ # Create a Formidable form using the schema
88
+ serializer = FormidableSerializer (data = self .schema )
89
+ assert serializer .is_valid ()
90
+ serializer .save ()
91
+ # get form instance
92
+ instance = serializer .instance
93
+
94
+ # Convert it into a "padawan" form
95
+ serializer = ContextFormSerializer (
96
+ instance , context = {'role' : 'padawan' }
97
+ )
98
+
99
+ # get field instance
100
+ fields = serializer ['fields' ].value
101
+ custom_field = fields [0 ]
102
+ # test field instance
103
+ self .assertIn ('meta_info' , custom_field ['parameters' ])
104
+ self .assertEqual (custom_field ["parameters" ]['meta_info' ], "meta" )
105
+ self .assertIn ('some_another_data' , custom_field ["parameters" ])
106
+ self .assertEqual (
107
+ custom_field ["parameters" ]['some_another_data' ],
108
+ "some_another_data"
109
+ )
110
+
111
+ # remove instance
112
+ instance .delete ()
84
113
85
114
def test_context_in_field_serializer (self ):
86
115
# backup a serializer
0 commit comments