diff options
Diffstat (limited to 'tests/test_fields.py')
| -rw-r--r-- | tests/test_fields.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/test_fields.py b/tests/test_fields.py index 7f5f8102..1aa528da 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -317,6 +317,25 @@ class TestCreateOnlyDefault: 'text': 'example', } + def test_create_only_default_callable_sets_context(self): + """ + CreateOnlyDefault instances with a callable default should set_context + on the callable if possible + """ + class TestCallableDefault: + def set_context(self, serializer_field): + self.field = serializer_field + + def __call__(self): + return "success" if hasattr(self, 'field') else "failure" + + class TestSerializer(serializers.Serializer): + context_set = serializers.CharField(default=serializers.CreateOnlyDefault(TestCallableDefault())) + + serializer = TestSerializer(data={}) + assert serializer.is_valid() + assert serializer.validated_data['context_set'] == 'success' + # Tests for field input and output values. # ---------------------------------------- |
