@@ -15,8 +15,8 @@ def parser(self):
1515 return JSONParser ()
1616
1717 @pytest .fixture
18- def parse (self , parser , parser_context ):
19- def parse_wrapper (data ):
18+ def parse (self , parser ):
19+ def parse_wrapper (data , parser_context ):
2020 stream = BytesIO (json .dumps (data ).encode ("utf-8" ))
2121 return parser .parse (stream , None , parser_context )
2222
@@ -41,6 +41,7 @@ def test_parse_formats_field_names(
4141 settings ,
4242 format_field_names ,
4343 parse ,
44+ parser_context ,
4445 ):
4546 settings .JSON_API_FORMAT_FIELD_NAMES = format_field_names
4647
@@ -59,25 +60,36 @@ def test_parse_formats_field_names(
5960 }
6061 }
6162
62- result = parse (data )
63+ result = parse (data , parser_context )
6364 assert result == {
6465 "id" : "123" ,
6566 "test_attribute" : "test-value" ,
6667 "test_relationship" : {"id" : "123" , "type" : "TestRelationship" },
6768 }
6869
69- def test_parse_extracts_meta (self , parse ):
70+ def test_parse_extracts_meta (self , parse , parser_context ):
7071 data = {
7172 "data" : {
7273 "type" : "BasicModel" ,
7374 },
7475 "meta" : {"random_key" : "random_value" },
7576 }
7677
77- result = parse (data )
78+ result = parse (data , parser_context )
7879 assert result ["_meta" ] == data ["meta" ]
7980
80- def test_parse_preserves_json_value_field_names (self , settings , parse ):
81+ def test_parse_with_default_arguments (self , parse ):
82+ data = {
83+ "data" : {
84+ "type" : "BasicModel" ,
85+ },
86+ }
87+ result = parse (data , None )
88+ assert result == {}
89+
90+ def test_parse_preserves_json_value_field_names (
91+ self , settings , parse , parser_context
92+ ):
8193 settings .JSON_API_FORMAT_FIELD_NAMES = "dasherize"
8294
8395 data = {
@@ -87,17 +99,17 @@ def test_parse_preserves_json_value_field_names(self, settings, parse):
8799 },
88100 }
89101
90- result = parse (data )
102+ result = parse (data , parser_context )
91103 assert result ["json_value" ] == {"JsonKey" : "JsonValue" }
92104
93- def test_parse_raises_error_on_empty_data (self , parse ):
105+ def test_parse_raises_error_on_empty_data (self , parse , parser_context ):
94106 data = []
95107
96108 with pytest .raises (ParseError ) as excinfo :
97- parse (data )
109+ parse (data , parser_context )
98110 assert "Received document does not contain primary data" == str (excinfo .value )
99111
100- def test_parse_fails_on_list_of_objects (self , parse ):
112+ def test_parse_fails_on_list_of_objects (self , parse , parser_context ):
101113 data = {
102114 "data" : [
103115 {
@@ -108,7 +120,7 @@ def test_parse_fails_on_list_of_objects(self, parse):
108120 }
109121
110122 with pytest .raises (ParseError ) as excinfo :
111- parse (data )
123+ parse (data , parser_context )
112124
113125 assert (
114126 "Received data is not a valid JSON:API Resource Identifier Object"
@@ -124,7 +136,7 @@ def test_parse_fails_when_id_is_missing_on_patch(self, rf, parse, parser_context
124136 }
125137
126138 with pytest .raises (ParseError ) as excinfo :
127- parse (data )
139+ parse (data , parser_context )
128140
129141 assert "The resource identifier object must contain an 'id' member" == str (
130142 excinfo .value
0 commit comments