|
| 1 | +from xml.etree.ElementTree import Element |
| 2 | + |
1 | 3 | import pytest
|
2 | 4 |
|
3 | 5 | from openapi_core.deserializing.exceptions import DeserializeError
|
@@ -46,23 +48,59 @@ def test_no_deserializer(self, deserializer_factory):
|
46 | 48 |
|
47 | 49 | assert result == value
|
48 | 50 |
|
49 |
| - def test_json_empty(self, deserializer_factory): |
50 |
| - mimetype = "application/json" |
| 51 | + @pytest.mark.parametrize("mimetype", [ |
| 52 | + "text/plain", "text/html", |
| 53 | + ]) |
| 54 | + def test_plain_valid(self, deserializer_factory, mimetype): |
| 55 | + deserializer = deserializer_factory(mimetype) |
| 56 | + value = "somestr" |
| 57 | + |
| 58 | + result = deserializer.deserialize(value) |
| 59 | + |
| 60 | + assert result == value |
| 61 | + |
| 62 | + @pytest.mark.parametrize("mimetype", [ |
| 63 | + "application/json", "application/vnd.api+json", |
| 64 | + ]) |
| 65 | + def test_json_empty(self, deserializer_factory, mimetype): |
51 | 66 | deserializer = deserializer_factory(mimetype)
|
52 | 67 | value = ""
|
53 | 68 |
|
54 | 69 | with pytest.raises(DeserializeError):
|
55 | 70 | deserializer.deserialize(value)
|
56 | 71 |
|
57 |
| - def test_json_empty_object(self, deserializer_factory): |
58 |
| - mimetype = "application/json" |
| 72 | + @pytest.mark.parametrize("mimetype", [ |
| 73 | + "application/json", "application/vnd.api+json", |
| 74 | + ]) |
| 75 | + def test_json_empty_object(self, deserializer_factory, mimetype): |
59 | 76 | deserializer = deserializer_factory(mimetype)
|
60 | 77 | value = "{}"
|
61 | 78 |
|
62 | 79 | result = deserializer.deserialize(value)
|
63 | 80 |
|
64 | 81 | assert result == {}
|
65 | 82 |
|
| 83 | + @pytest.mark.parametrize("mimetype", [ |
| 84 | + "application/xml", "application/xhtml+xml", |
| 85 | + ]) |
| 86 | + def test_xml_empty(self, deserializer_factory, mimetype): |
| 87 | + deserializer = deserializer_factory(mimetype) |
| 88 | + value = "" |
| 89 | + |
| 90 | + with pytest.raises(DeserializeError): |
| 91 | + deserializer.deserialize(value) |
| 92 | + |
| 93 | + @pytest.mark.parametrize("mimetype", [ |
| 94 | + "application/xml", "application/xhtml+xml", |
| 95 | + ]) |
| 96 | + def test_xml_valid(self, deserializer_factory, mimetype): |
| 97 | + deserializer = deserializer_factory(mimetype) |
| 98 | + value = "<obj>text</obj>" |
| 99 | + |
| 100 | + result = deserializer.deserialize(value) |
| 101 | + |
| 102 | + assert type(result) is Element |
| 103 | + |
66 | 104 | def test_urlencoded_form_empty(self, deserializer_factory):
|
67 | 105 | mimetype = "application/x-www-form-urlencoded"
|
68 | 106 | deserializer = deserializer_factory(mimetype)
|
|
0 commit comments