|
| 1 | +from typing import Any |
1 | 2 | from unittest.mock import Mock
|
2 | 3 |
|
3 | 4 | import pytest
|
@@ -50,6 +51,28 @@ def test_map_serializer_field_ok(schema: dict):
|
50 | 51 | assert data == schema
|
51 | 52 |
|
52 | 53 |
|
| 54 | +@pytest.mark.parametrize( |
| 55 | + "schema,expected", |
| 56 | + [ |
| 57 | + ({"const": 10}, {"enum": [10]}), # integer |
| 58 | + ({"const": 10.00}, {"enum": [10.00]}), # float |
| 59 | + ({"const": 10.00}, {"enum": [10.00]}), # bytes |
| 60 | + ({"const": "string"}, {"enum": ["string"]}), # string |
| 61 | + ({"const": True}, {"enum": [True]}), # bool |
| 62 | + ({"const": None}, None), # none |
| 63 | + ({"const": {"k": "v", "k2": 10}}, {"enum": [{"k": "v", "k2": 10}]}), # dict |
| 64 | + ({"const": [10, 20]}, {"enum": [[10, 20]]}), # list |
| 65 | + ], |
| 66 | +) |
| 67 | +def test_map_serializer_field_const(schema: dict, expected: Any): |
| 68 | + """Test basic types declared as const in JSON schema.""" |
| 69 | + |
| 70 | + json_field = CustomJSONField(schema=schema) |
| 71 | + extension = CustomJSONFieldSerializerExtension(json_field) |
| 72 | + data = extension.map_serializer_field(Mock(), "response") |
| 73 | + assert data == expected |
| 74 | + |
| 75 | + |
53 | 76 | @pytest.mark.parametrize(
|
54 | 77 | "schema",
|
55 | 78 | [
|
|
0 commit comments