@@ -218,7 +218,7 @@ def test__get_document_path_no_url(self, mocker):
218218
219219 def test__get_document_bad_yaml (self , mocker ):
220220 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" ) )
222222
223223 from openapi_python_client import _get_document
224224
@@ -228,7 +228,44 @@ def test__get_document_bad_yaml(self, mocker):
228228 get .assert_not_called ()
229229 path .read_bytes .assert_called_once ()
230230 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 (
267+ header = "Invalid JSON from provided source: " "Expecting ':' delimiter: line 1 column 7 (char 6)"
268+ )
232269
233270
234271def make_project (** kwargs ):
0 commit comments