|
25 | 25 | NumpySerializer,
|
26 | 26 | JSONSerializer,
|
27 | 27 | SparseMatrixSerializer,
|
| 28 | + JSONLinesSerializer, |
28 | 29 | )
|
29 | 30 | from tests.unit import DATA_DIR
|
30 | 31 |
|
@@ -235,6 +236,57 @@ def test_json_serializer_csv_buffer(json_serializer):
|
235 | 236 | assert result == validation_value
|
236 | 237 |
|
237 | 238 |
|
| 239 | +@pytest.fixture |
| 240 | +def json_lines_serializer(): |
| 241 | + return JSONLinesSerializer() |
| 242 | + |
| 243 | + |
| 244 | +@pytest.mark.parametrize( |
| 245 | + "input, expected", |
| 246 | + [ |
| 247 | + ('["Name", "Score"]\n["Gilbert", 24]', '["Name", "Score"]\n["Gilbert", 24]'), |
| 248 | + ( |
| 249 | + '{"Name": "Gilbert", "Score": 24}\n{"Name": "Alexa", "Score": 29}', |
| 250 | + '{"Name": "Gilbert", "Score": 24}\n{"Name": "Alexa", "Score": 29}', |
| 251 | + ), |
| 252 | + ], |
| 253 | +) |
| 254 | +def test_json_lines_serializer_string(json_lines_serializer, input, expected): |
| 255 | + actual = json_lines_serializer.serialize(input) |
| 256 | + assert actual == expected |
| 257 | + |
| 258 | + |
| 259 | +@pytest.mark.parametrize( |
| 260 | + "input, expected", |
| 261 | + [ |
| 262 | + ([["Name", "Score"], ["Gilbert", 24]], '["Name", "Score"]\n["Gilbert", 24]'), |
| 263 | + ( |
| 264 | + [{"Name": "Gilbert", "Score": 24}, {"Name": "Alexa", "Score": 29}], |
| 265 | + '{"Name": "Gilbert", "Score": 24}\n{"Name": "Alexa", "Score": 29}', |
| 266 | + ), |
| 267 | + ], |
| 268 | +) |
| 269 | +def test_json_lines_serializer_list(json_lines_serializer, input, expected): |
| 270 | + actual = json_lines_serializer.serialize(input) |
| 271 | + assert actual == expected |
| 272 | + |
| 273 | + |
| 274 | +@pytest.mark.parametrize( |
| 275 | + "source, expected", |
| 276 | + [ |
| 277 | + ('["Name", "Score"]\n["Gilbert", 24]', '["Name", "Score"]\n["Gilbert", 24]'), |
| 278 | + ( |
| 279 | + '{"Name": "Gilbert", "Score": 24}\n{"Name": "Alexa", "Score": 29}', |
| 280 | + '{"Name": "Gilbert", "Score": 24}\n{"Name": "Alexa", "Score": 29}', |
| 281 | + ), |
| 282 | + ], |
| 283 | +) |
| 284 | +def test_json_lines_serializer_file_like(json_lines_serializer, source, expected): |
| 285 | + input = io.StringIO(source) |
| 286 | + actual = json_lines_serializer.serialize(input) |
| 287 | + assert actual == expected |
| 288 | + |
| 289 | + |
238 | 290 | @pytest.fixture
|
239 | 291 | def sparse_matrix_serializer():
|
240 | 292 | return SparseMatrixSerializer()
|
|
0 commit comments