summaryrefslogtreecommitdiff
path: root/tests/serializers
diff options
context:
space:
mode:
authorBaptiste Mispelon <bmispelon@gmail.com>2019-12-11 19:36:57 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-12-13 11:38:09 +0100
commit738e9e615dc81b561c9fb01439119f4475c2e25b (patch)
tree2466bd7403eee654e1e217d85fbf6fe07a33053d /tests/serializers
parent3fe5d0128b86438b38c5a4a27371aa7fdf91cb3d (diff)
downloaddjango-738e9e615dc81b561c9fb01439119f4475c2e25b.tar.gz
Fixed #26743 -- Fixed UnboundLocalError crash when deserializing m2m fields and value isn't iterable.
Diffstat (limited to 'tests/serializers')
-rw-r--r--tests/serializers/test_json.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/serializers/test_json.py b/tests/serializers/test_json.py
index a804aa1f3a..93e51e124c 100644
--- a/tests/serializers/test_json.py
+++ b/tests/serializers/test_json.py
@@ -252,6 +252,20 @@ class JsonSerializerTestCase(SerializersTestBase, TestCase):
for obj in serializers.deserialize('json', test_string, ignore=False):
obj.save()
+ def test_helpful_error_message_for_many2many_not_iterable(self):
+ """
+ Not iterable many-to-many field value throws a helpful error message.
+ """
+ test_string = """[{
+ "pk": 1,
+ "model": "serializers.m2mdata",
+ "fields": {"data": null}
+ }]"""
+
+ expected = "(serializers.m2mdata:pk=1) field_value was 'None'"
+ with self.assertRaisesMessage(DeserializationError, expected):
+ next(serializers.deserialize('json', test_string, ignore=False))
+
class JsonSerializerTransactionTestCase(SerializersTransactionTestBase, TransactionTestCase):
serializer_name = "json"