@@ -15,8 +15,8 @@ def parser(self):
15
15
return JSONParser ()
16
16
17
17
@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 ):
20
20
stream = BytesIO (json .dumps (data ).encode ("utf-8" ))
21
21
return parser .parse (stream , None , parser_context )
22
22
@@ -41,6 +41,7 @@ def test_parse_formats_field_names(
41
41
settings ,
42
42
format_field_names ,
43
43
parse ,
44
+ parser_context ,
44
45
):
45
46
settings .JSON_API_FORMAT_FIELD_NAMES = format_field_names
46
47
@@ -59,25 +60,36 @@ def test_parse_formats_field_names(
59
60
}
60
61
}
61
62
62
- result = parse (data )
63
+ result = parse (data , parser_context )
63
64
assert result == {
64
65
"id" : "123" ,
65
66
"test_attribute" : "test-value" ,
66
67
"test_relationship" : {"id" : "123" , "type" : "TestRelationship" },
67
68
}
68
69
69
- def test_parse_extracts_meta (self , parse ):
70
+ def test_parse_extracts_meta (self , parse , parser_context ):
70
71
data = {
71
72
"data" : {
72
73
"type" : "BasicModel" ,
73
74
},
74
75
"meta" : {"random_key" : "random_value" },
75
76
}
76
77
77
- result = parse (data )
78
+ result = parse (data , parser_context )
78
79
assert result ["_meta" ] == data ["meta" ]
79
80
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
+ ):
81
93
settings .JSON_API_FORMAT_FIELD_NAMES = "dasherize"
82
94
83
95
data = {
@@ -87,17 +99,17 @@ def test_parse_preserves_json_value_field_names(self, settings, parse):
87
99
},
88
100
}
89
101
90
- result = parse (data )
102
+ result = parse (data , parser_context )
91
103
assert result ["json_value" ] == {"JsonKey" : "JsonValue" }
92
104
93
- def test_parse_raises_error_on_empty_data (self , parse ):
105
+ def test_parse_raises_error_on_empty_data (self , parse , parser_context ):
94
106
data = []
95
107
96
108
with pytest .raises (ParseError ) as excinfo :
97
- parse (data )
109
+ parse (data , parser_context )
98
110
assert "Received document does not contain primary data" == str (excinfo .value )
99
111
100
- def test_parse_fails_on_list_of_objects (self , parse ):
112
+ def test_parse_fails_on_list_of_objects (self , parse , parser_context ):
101
113
data = {
102
114
"data" : [
103
115
{
@@ -108,7 +120,7 @@ def test_parse_fails_on_list_of_objects(self, parse):
108
120
}
109
121
110
122
with pytest .raises (ParseError ) as excinfo :
111
- parse (data )
123
+ parse (data , parser_context )
112
124
113
125
assert (
114
126
"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
124
136
}
125
137
126
138
with pytest .raises (ParseError ) as excinfo :
127
- parse (data )
139
+ parse (data , parser_context )
128
140
129
141
assert "The resource identifier object must contain an 'id' member" == str (
130
142
excinfo .value
0 commit comments