Example #1
0
def test_table_xlsx_merged_cells_fill():
    source = "data/merged-cells.xlsx"
    dialect = dialects.ExcelDialect(fill_merged_cells=True)
    with Table(source, dialect=dialect, headers=False) as table:
        assert table.read_data() == [["data", "data"], ["data", "data"], ["data", "data"]]
Example #2
0
def test_xlsx_parser_table():
    source = io.open("data/table.xlsx", mode="rb")
    with Table(source, format="xlsx") as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [[1.0, "english"], [2.0, "中国人"]]
Example #3
0
def test_table_local_xls():
    with Table("data/table.xls") as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [[1, "english"], [2, "中国人"]]
def test_table_csv_text():
    source = "text://id,name\n1,english\n2,中国人\n"
    with Table(source, format="csv") as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [["1", "english"], ["2", "中国人"]]
Example #5
0
def test_filelike_loader_write():
    source = "data/table.csv"
    with Table(source) as table:
        byte_stream = table.write(scheme="filelike", format="csv")
    assert (byte_stream.read(
    ) == b"id,name\r\n1,english\r\n2,\xe4\xb8\xad\xe5\x9b\xbd\xe4\xba\xba\r\n")
def test_table_csv_excel():
    source = "header1,header2\nvalue1,value2\nvalue3,value4"
    with Table(source, scheme="text", format="csv") as table:
        assert table.header == ["header1", "header2"]
        assert table.read_data() == [["value1", "value2"],
                                     ["value3", "value4"]]
def test_table_csv_doublequote():
    with Table("data/doublequote.csv") as table:
        assert len(table.header) == 17
        for row in table:
            assert len(row) == 17
Example #8
0
def test_ods_parser_remote():
    source = BASE_URL % "data/table.ods"
    with Table(source) as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [[1, "english"], [2, "中国人"]]
Example #9
0
def test_ods_parser_sheet_by_name():
    dialect = OdsDialect(sheet="Лист1")
    with Table("data/table.ods", dialect=dialect) as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [[1, "english"], [2, "中国人"]]
def test_table_inline():
    source = [["id", "name"], ["1", "english"], ["2", "中国人"]]
    with Table(source) as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [["1", "english"], ["2", "中国人"]]
Example #11
0
def test_ods_parser():
    with Table("data/table.ods") as table:
        assert table.format == "ods"
        assert table.header == ["id", "name"]
        assert table.read_data() == [[1, "english"], [2, "中国人"]]
def test_table_inline_from_iterator():
    source = iter([["id", "name"], ["1", "english"], ["2", "中国人"]])
    with Table(source) as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [["1", "english"], ["2", "中国人"]]
def test_table_inline_keyed_order_is_preserved():
    source = [{"name": "english", "id": "1"}, {"name": "中国人", "id": "2"}]
    with Table(source, format="inline") as table:
        assert table.dialect.keyed is True
        assert table.header == ["name", "id"]
        assert table.read_data() == [["english", "1"], ["中国人", "2"]]
def test_table_inline_keyed():
    source = [{"id": "1", "name": "english"}, {"id": "2", "name": "中国人"}]
    with Table(source, format="inline") as table:
        assert table.dialect.keyed is True
        assert table.header == ["id", "name"]
        assert table.read_data() == [["1", "english"], ["2", "中国人"]]
def test_table_csv_quotechar_is_empty_string():
    source = 'header1,header2",header3\nvalue1,value2",value3'
    dialect = CsvDialect(quote_char="")
    with Table(source, scheme="text", format="csv", dialect=dialect) as table:
        table.header == ["header1", 'header2"', "header3"]
        table.read_data() == [["value1", 'value2"', "value3"]]
Example #16
0
def test_ods_parser_with_boolean():
    with Table("data/table-with-booleans.ods") as table:
        assert table.header == ["id", "boolean"]
        assert table.read_data() == [[1, True], [2, False]]
def test_table_csv_with_bom_with_encoding():
    with Table("data/bom.csv", encoding="utf-8") as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [["1", "english"], ["2", "中国人"]]
Example #18
0
def test_text_loader_write():
    source = "data/table.csv"
    with Table(source) as table:
        text = table.write(scheme="text", format="csv")
    assert text == "id,name\r\n1,english\r\n2,中国人\r\n"
def test_table_csv_unix():
    source = '"header1","header2"\n"value1","value2"\n"value3","value4"'
    with Table(source, scheme="text", format="csv") as table:
        assert table.header == ["header1", "header2"]
        assert table.read_data() == [["value1", "value2"],
                                     ["value3", "value4"]]
Example #20
0
def test_text_loader():
    source = "text://header1,header2\nvalue1,value2\nvalue3,value4"
    with Table(source, format="csv") as table:
        assert table.header == ["header1", "header2"]
        assert table.read_data() == [["value1", "value2"],
                                     ["value3", "value4"]]
def test_table_csv_stream():
    source = open("data/table.csv", mode="rb")
    with Table(source, format="csv") as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [["1", "english"], ["2", "中国人"]]
def test_table_csv_escapechar():
    source = "header1%,header2\nvalue1%,value2\nvalue3%,value4"
    dialect = CsvDialect(escape_char="%")
    with Table(source, scheme="text", format="csv", dialect=dialect) as table:
        assert table.header == ["header1,header2"]
        assert table.read_data() == [["value1,value2"], ["value3,value4"]]
def test_table_csv():
    with Table("data/table.csv") as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [["1", "english"], ["2", "中国人"]]
def test_table_csv_quotechar():
    source = "%header1,header2%\n%value1,value2%\n%value3,value4%"
    dialect = CsvDialect(quote_char="%")
    with Table(source, scheme="text", format="csv", dialect=dialect) as table:
        assert table.header == ["header1,header2"]
        assert table.read_data() == [["value1,value2"], ["value3,value4"]]
Example #25
0
def test_filelike_loader():
    with open("data/table.csv", mode="rb") as file:
        with Table(file, format="csv") as table:
            assert table.header == ["id", "name"]
            assert table.read_data() == [["1", "english"], ["2", "中国人"]]
def test_table_csv_detect_delimiter_tab():
    source = "a1\tb1\tc1A,c1B\na2\tb2\tc2\n"
    with Table(source, scheme="text", format="csv", headers=False) as table:
        assert table.read_data() == [["a1", "b1", "c1A,c1B"],
                                     ["a2", "b2", "c2"]]
Example #27
0
def test_xlsx_parser_preserve_formatting_number_multicode():
    source = "data/number-format-multicode.xlsx"
    dialect = ExcelDialect(preserve_formatting=True)
    query = Query(skip_fields=["<blank>"])
    with Table(source, dialect=dialect, query=query) as table:
        assert table.read_data() == [["4.5"], ["-9.032"], ["15.8"]]
def test_table_csv_detect_delimiter_pipe():
    source = "a1|b1\na2|b2\n"
    with Table(source, scheme="text", format="csv", headers=False) as table:
        assert table.read_data() == [["a1", "b1"], ["a2", "b2"]]
Example #29
0
def test_table_remote_xls():
    with Table(BASE_URL % "data/table.xls") as table:
        assert table.header == ["id", "name"]
        assert table.read_data() == [[1, "english"], [2, "中国人"]]
Example #30
0
def test_table_xlsx_merged_cells():
    source = "data/merged-cells.xlsx"
    with Table(source, headers=False) as table:
        assert table.read_data() == [["data", None]]