aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKevin Wood2015-02-27 22:14:15 -0800
committerKevin Wood2015-02-27 22:14:15 -0800
commit78e8b1b0108bb8338aa578ea2f4a0237d4edd1d4 (patch)
treee9ef4aea6ac04da0fe11e1b4682cc76ac035faa7 /tests
parent33c4278ec8964a0ed5c447d08bc45c4da2bbd7ec (diff)
downloaddjango-rest-framework-78e8b1b0108bb8338aa578ea2f4a0237d4edd1d4.tar.bz2
Updated CreateOnlyDefault to call set_context on its default (if callable)
Diffstat (limited to 'tests')
-rw-r--r--tests/test_fields.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/test_fields.py b/tests/test_fields.py
index 7f5f8102..2ffffd55 100644
--- a/tests/test_fields.py
+++ b/tests/test_fields.py
@@ -317,6 +317,22 @@ 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.
# ----------------------------------------