22
33from formidable .register import FieldSerializerRegister , load_serializer
44from formidable .serializers import FormidableSerializer
5+ from formidable .serializers .forms import ContextFormSerializer
56from formidable .serializers .fields import BASE_FIELDS , FieldSerializer
67
78import mock
@@ -60,10 +61,10 @@ def test_register(self):
6061
6162 def test_custom_field_serialize (self ):
6263 serializer = FormidableSerializer (data = self .schema )
63- serializer .is_valid ()
64+ assert serializer .is_valid ()
6465 serializer .save ()
6566 # get field instance
66- self . instance = serializer .instance
67+ instance = serializer .instance
6768 custom_field = serializer .instance .fields .first ()
6869 # test field instance
6970 self .assertIn ('meta_info' , custom_field .parameters )
@@ -80,7 +81,35 @@ def test_custom_field_serialize(self):
8081 self .assertIn ('some_another_data' , data )
8182 self .assertIn ('parameters' , data )
8283 # 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 ()
84113
85114 def test_context_in_field_serializer (self ):
86115 # backup a serializer
0 commit comments