Skip to content

Commit 0ee24d5

Browse files
committed
test: test TestMultipleChoiceField can json serializable
(cherry picked from commit 12908b1)
1 parent 3e09113 commit 0ee24d5

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

tests/test_fields.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
import pytest
1313

14+
from rest_framework.utils import json
15+
1416
try:
1517
import pytz
1618
except ImportError:
@@ -2082,7 +2084,30 @@ def test_against_partial_and_full_updates(self):
20822084
field.partial = False
20832085
assert field.get_value(QueryDict('')) == []
20842086
field.partial = True
2085-
assert field.get_value(QueryDict('')) == rest_framework.fields.empty
2087+
assert field.get_value(QueryDict("")) == rest_framework.fields.empty
2088+
2089+
def test_valid_inputs_is_json_serializable(self):
2090+
for input_value, _ in get_items(self.valid_inputs):
2091+
validated = self.field.run_validation(input_value)
2092+
2093+
try:
2094+
json.dumps(validated)
2095+
except TypeError as e:
2096+
assert (
2097+
False
2098+
), f"Validated output not JSON serializable: {repr(validated)}; Error: {e}"
2099+
2100+
def test_output_is_json_serializable(self):
2101+
for output_value, _ in get_items(self.outputs):
2102+
representation = self.field.to_representation(output_value)
2103+
2104+
try:
2105+
json.dumps(representation)
2106+
except TypeError as e:
2107+
assert False, (
2108+
f"to_representation output not JSON serializable: "
2109+
f"{repr(representation)}; Error: {e}"
2110+
)
20862111

20872112

20882113
class TestEmptyMultipleChoiceField(FieldValues):

0 commit comments

Comments
 (0)