forked from loafle/openapi-generator-original
[python] fix content_type deserialize (#19317)
* [Python] fix: #19285 * [python] update sample * [python] add test * [python] remove test
This commit is contained in:
parent
7a7c8c19ab
commit
69cce249f6
@ -412,12 +412,12 @@ class ApiClient:
|
||||
data = json.loads(response_text)
|
||||
except ValueError:
|
||||
data = response_text
|
||||
elif content_type.startswith("application/json"):
|
||||
elif re.match(r'^application/(json|[\w!#$&.+-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
|
||||
if response_text == "":
|
||||
data = ""
|
||||
else:
|
||||
data = json.loads(response_text)
|
||||
elif content_type.startswith("text/plain"):
|
||||
elif re.match(r'^text/plain\s*(;|$)', content_type, re.IGNORECASE):
|
||||
data = response_text
|
||||
else:
|
||||
raise ApiException(
|
||||
|
@ -405,12 +405,12 @@ class ApiClient:
|
||||
data = json.loads(response_text)
|
||||
except ValueError:
|
||||
data = response_text
|
||||
elif content_type.startswith("application/json"):
|
||||
elif re.match(r'^application/(json|[\w!#$&.+-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
|
||||
if response_text == "":
|
||||
data = ""
|
||||
else:
|
||||
data = json.loads(response_text)
|
||||
elif content_type.startswith("text/plain"):
|
||||
elif re.match(r'^text/plain\s*(;|$)', content_type, re.IGNORECASE):
|
||||
data = response_text
|
||||
else:
|
||||
raise ApiException(
|
||||
|
@ -405,12 +405,12 @@ class ApiClient:
|
||||
data = json.loads(response_text)
|
||||
except ValueError:
|
||||
data = response_text
|
||||
elif content_type.startswith("application/json"):
|
||||
elif re.match(r'^application/(json|[\w!#$&.+-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
|
||||
if response_text == "":
|
||||
data = ""
|
||||
else:
|
||||
data = json.loads(response_text)
|
||||
elif content_type.startswith("text/plain"):
|
||||
elif re.match(r'^text/plain\s*(;|$)', content_type, re.IGNORECASE):
|
||||
data = response_text
|
||||
else:
|
||||
raise ApiException(
|
||||
|
@ -407,12 +407,12 @@ class ApiClient:
|
||||
data = json.loads(response_text)
|
||||
except ValueError:
|
||||
data = response_text
|
||||
elif content_type.startswith("application/json"):
|
||||
elif re.match(r'^application/(json|[\w!#$&.+-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
|
||||
if response_text == "":
|
||||
data = ""
|
||||
else:
|
||||
data = json.loads(response_text)
|
||||
elif content_type.startswith("text/plain"):
|
||||
elif re.match(r'^text/plain\s*(;|$)', content_type, re.IGNORECASE):
|
||||
data = response_text
|
||||
else:
|
||||
raise ApiException(
|
||||
|
@ -404,12 +404,12 @@ class ApiClient:
|
||||
data = json.loads(response_text)
|
||||
except ValueError:
|
||||
data = response_text
|
||||
elif content_type.startswith("application/json"):
|
||||
elif re.match(r'^application/(json|[\w!#$&.+-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
|
||||
if response_text == "":
|
||||
data = ""
|
||||
else:
|
||||
data = json.loads(response_text)
|
||||
elif content_type.startswith("text/plain"):
|
||||
elif re.match(r'^text/plain\s*(;|$)', content_type, re.IGNORECASE):
|
||||
data = response_text
|
||||
else:
|
||||
raise ApiException(
|
||||
|
@ -301,3 +301,35 @@ class DeserializationTests(unittest.TestCase):
|
||||
self.assertEqual(deserialized.class_name, "Cat")
|
||||
self.assertEqual(deserialized.declawed, True)
|
||||
self.assertEqual(deserialized.to_json(), '{"className": "Cat", "color": "red", "declawed": true}')
|
||||
|
||||
def test_deserialize_content_type(self):
|
||||
|
||||
response = json.dumps({"a": "a"})
|
||||
|
||||
deserialized = self.deserialize(response, "Dict[str, str]", 'application/json')
|
||||
self.assertTrue(isinstance(deserialized, dict))
|
||||
|
||||
|
||||
deserialized = self.deserialize(response, "Dict[str, str]", 'application/vnd.api+json')
|
||||
self.assertTrue(isinstance(deserialized, dict))
|
||||
|
||||
|
||||
deserialized = self.deserialize(response, "Dict[str, str]", 'application/json; charset=utf-8')
|
||||
self.assertTrue(isinstance(deserialized, dict))
|
||||
|
||||
deserialized = self.deserialize(response, "Dict[str, str]", 'application/vnd.api+json; charset=utf-8')
|
||||
self.assertTrue(isinstance(deserialized, dict))
|
||||
|
||||
deserialized = self.deserialize(response, "str", 'text/plain')
|
||||
self.assertTrue(isinstance(deserialized, str))
|
||||
|
||||
deserialized = self.deserialize(response, "Dict[str, str]", 'APPLICATION/JSON')
|
||||
self.assertTrue(isinstance(deserialized, dict))
|
||||
|
||||
with self.assertRaises(petstore_api.ApiException) as cm:
|
||||
deserialized = self.deserialize(response, "str", 'text/html')
|
||||
|
||||
with self.assertRaises(petstore_api.ApiException) as cm:
|
||||
deserialized = self.deserialize(response, "Dict[str, str]", 'application/jsonnnnn')
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user