@@ -218,7 +218,7 @@ def test__get_document_path_no_url(self, mocker):
218
218
219
219
def test__get_document_bad_yaml (self , mocker ):
220
220
get = mocker .patch ("httpx.get" )
221
- loads = mocker .patch ("yaml.safe_load" , side_effect = yaml .YAMLError )
221
+ loads = mocker .patch ("yaml.safe_load" , side_effect = yaml .YAMLError ( "error line 2" ) )
222
222
223
223
from openapi_python_client import _get_document
224
224
@@ -228,7 +228,43 @@ def test__get_document_bad_yaml(self, mocker):
228
228
get .assert_not_called ()
229
229
path .read_bytes .assert_called_once ()
230
230
loads .assert_called_once_with (path .read_bytes ())
231
- assert result == GeneratorError (header = "Invalid YAML from provided source" )
231
+ assert result == GeneratorError (header = "Invalid YAML from provided source: error line 2" )
232
+
233
+ def test__get_document_json (self , mocker ):
234
+ class FakeResponse :
235
+ content = b'{\n \t "foo": "bar"}'
236
+ headers = {"content-type" : "application/json; encoding=utf8" }
237
+
238
+ get = mocker .patch ("httpx.get" , return_value = FakeResponse ())
239
+ yaml_loads = mocker .patch ("yaml.safe_load" )
240
+ json_result = mocker .MagicMock ()
241
+ json_loads = mocker .patch ("json.loads" , return_value = json_result )
242
+
243
+ from openapi_python_client import _get_document
244
+
245
+ url = mocker .MagicMock ()
246
+ result = _get_document (url = url , path = None )
247
+
248
+ get .assert_called_once ()
249
+ json_loads .assert_called_once_with (FakeResponse .content .decode ())
250
+ assert result == json_result
251
+
252
+ def test__get_document_bad_json (self , mocker ):
253
+ class FakeResponse :
254
+ content = b'{"foo"}'
255
+ headers = {"content-type" : "application/json; encoding=utf8" }
256
+
257
+ get = mocker .patch ("httpx.get" , return_value = FakeResponse ())
258
+ json_result = mocker .MagicMock ()
259
+
260
+ from openapi_python_client import _get_document
261
+
262
+ url = mocker .MagicMock ()
263
+ result = _get_document (url = url , path = None )
264
+
265
+ get .assert_called_once ()
266
+ assert result == GeneratorError (header = "Invalid JSON from provided source: "
267
+ "Expecting ':' delimiter: line 1 column 7 (char 6)" )
232
268
233
269
234
270
def make_project (** kwargs ):
0 commit comments