| 1313 | |
| 1314 | |
| 1315 | def test_make_json_fragment_from_buffer(dataset_reader, pickle_module): |
| 1316 | content = '{"alpha" : "a", "num": 12, "animal" : "dog"}\n' + \ |
| 1317 | '{"alpha" : "b", "num": 11, "animal" : "cat"}\n' + \ |
| 1318 | '{"alpha" : "c", "num": 10, "animal" : "rabbit"}\n' |
| 1319 | buffer = pa.py_buffer(content.encode('utf-8')) |
| 1320 | |
| 1321 | json_format = ds.JsonFileFormat() |
| 1322 | fragment = json_format.make_fragment(buffer) |
| 1323 | |
| 1324 | # When buffer, fragment open returns a BufferReader, not NativeFile |
| 1325 | assert isinstance(fragment.open(), pa.BufferReader) |
| 1326 | |
| 1327 | expected = pa.table([['a', 'b', 'c'], |
| 1328 | [12, 11, 10], |
| 1329 | ['dog', 'cat', 'rabbit']], |
| 1330 | names=['alpha', 'num', 'animal']) |
| 1331 | assert dataset_reader.to_table(fragment).equals(expected) |
| 1332 | |
| 1333 | pickled = pickle_module.loads(pickle_module.dumps(fragment)) |
| 1334 | assert dataset_reader.to_table(pickled).equals(fragment.to_table()) |
| 1335 | |
| 1336 | |
| 1337 | @pytest.mark.parquet |