def test_ndjson_scalar(): stream = StringIO('1\n' '2\n') parser = NDJSONParser() loader = Mock(load=Mock(return_value=stream)) parser.open(None, None, loader) with pytest.raises(exceptions.SourceError): list(parser.extended_rows)
def test_ndjson_list(): stream = StringIO('[1, 2, 3]\n' '[4, 5, 6]\n') parser = NDJSONParser() loader = Mock(load=Mock(return_value=stream)) parser.open(None, None, loader) assert list(parser.extended_rows) == [ (1, None, [1, 2, 3]), (2, None, [4, 5, 6]), ]
def test_ndjson_parser(): source = 'data/table.ndjson' encoding = None loader = Mock() loader.load = Mock(return_value=io.open(source, encoding='utf-8')) parser = NDJSONParser() assert parser.closed is True parser.open(source, encoding, loader) assert parser.closed is False assert list(parser.extended_rows) == [ (1, ['id', 'name'], [1, 'english']), (2, ['id', 'name'], [2, '中国人']), ] assert len(list(parser.extended_rows)) == 0 parser.reset() assert len(list(parser.extended_rows)) == 2 parser.close() assert parser.closed