|
| 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,79 @@ 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( |
| 52 | + "mimetype", |
| 53 | + [ |
| 54 | + "text/plain", |
| 55 | + "text/html", |
| 56 | + ], |
| 57 | + ) |
| 58 | + def test_plain_valid(self, deserializer_factory, mimetype): |
| 59 | + deserializer = deserializer_factory(mimetype) |
| 60 | + value = "somestr" |
| 61 | + |
| 62 | + result = deserializer.deserialize(value) |
| 63 | + |
| 64 | + assert result == value |
| 65 | + |
| 66 | + @pytest.mark.parametrize( |
| 67 | + "mimetype", |
| 68 | + [ |
| 69 | + "application/json", |
| 70 | + "application/vnd.api+json", |
| 71 | + ], |
| 72 | + ) |
| 73 | + def test_json_empty(self, deserializer_factory, mimetype): |
51 | 74 | deserializer = deserializer_factory(mimetype)
|
52 | 75 | value = ""
|
53 | 76 |
|
54 | 77 | with pytest.raises(DeserializeError):
|
55 | 78 | deserializer.deserialize(value)
|
56 | 79 |
|
57 |
| - def test_json_empty_object(self, deserializer_factory): |
58 |
| - mimetype = "application/json" |
| 80 | + @pytest.mark.parametrize( |
| 81 | + "mimetype", |
| 82 | + [ |
| 83 | + "application/json", |
| 84 | + "application/vnd.api+json", |
| 85 | + ], |
| 86 | + ) |
| 87 | + def test_json_empty_object(self, deserializer_factory, mimetype): |
59 | 88 | deserializer = deserializer_factory(mimetype)
|
60 | 89 | value = "{}"
|
61 | 90 |
|
62 | 91 | result = deserializer.deserialize(value)
|
63 | 92 |
|
64 | 93 | assert result == {}
|
65 | 94 |
|
| 95 | + @pytest.mark.parametrize( |
| 96 | + "mimetype", |
| 97 | + [ |
| 98 | + "application/xml", |
| 99 | + "application/xhtml+xml", |
| 100 | + ], |
| 101 | + ) |
| 102 | + def test_xml_empty(self, deserializer_factory, mimetype): |
| 103 | + deserializer = deserializer_factory(mimetype) |
| 104 | + value = "" |
| 105 | + |
| 106 | + with pytest.raises(DeserializeError): |
| 107 | + deserializer.deserialize(value) |
| 108 | + |
| 109 | + @pytest.mark.parametrize( |
| 110 | + "mimetype", |
| 111 | + [ |
| 112 | + "application/xml", |
| 113 | + "application/xhtml+xml", |
| 114 | + ], |
| 115 | + ) |
| 116 | + def test_xml_valid(self, deserializer_factory, mimetype): |
| 117 | + deserializer = deserializer_factory(mimetype) |
| 118 | + value = "<obj>text</obj>" |
| 119 | + |
| 120 | + result = deserializer.deserialize(value) |
| 121 | + |
| 122 | + assert type(result) is Element |
| 123 | + |
66 | 124 | def test_urlencoded_form_empty(self, deserializer_factory):
|
67 | 125 | mimetype = "application/x-www-form-urlencoded"
|
68 | 126 | deserializer = deserializer_factory(mimetype)
|
|
0 commit comments