Пример #1
0
def test_validate_csv_missing_columns():
    with assert_raises(delim.CSVError) as cm:
        fields = [
            delim.CSVField('Foo'),
            delim.CSVField('Bar'),
            delim.CSVField('Baz')
        ]
        delim.parse_csv_data("Foo", fields, True)
    assert_true("missing: Bar, Baz", cm.exception.message)
Пример #2
0
def test_skip_blank_ones():
    data = "Name,Bar\n,,\n\n1,2\n,,\n\n"
    fields = [delim.CSVField("Name"), delim.CSVField("Bar")]
    results = delim.parse_csv_data(data, fields, skip_if=lambda row: not row.name)
    assert_equals(1, len(results), results)
    assert_equals("1", results[0].name)
    assert_equals("2", results[0].bar)
Пример #3
0
def test_parse_csv_data_mappings():
    data = "Name,Bar\n1,2\n3,4"
    fields = [delim.CSVField("Name"), delim.CSVField("Bar")]
    results = delim.parse_csv_data(data, fields)
    assert_equals(2, len(results))
    assert_equals("1", results[0].name)
    assert_equals("2", results[0].bar)
Пример #4
0
def test_parse_csv_data_mappings():
    data = "Name,Bar\n1,2\n3,4"
    fields = [delim.CSVField('Name'), delim.CSVField('Bar')]
    results = delim.parse_csv_data(data, fields)
    assert_equals(2, len(results))
    assert_equals("1", results[0].name)
    assert_equals("2", results[0].bar)
Пример #5
0
def test_skip_blank_ones():
    data = "Name,Bar\n,,\n\n1,2\n,,\n\n"
    fields = [delim.CSVField('Name'), delim.CSVField('Bar')]
    results = delim.parse_csv_data(data,
                                   fields,
                                   skip_if=lambda row: not row.name)
    assert_equals(1, len(results), results)
    assert_equals("1", results[0].name)
    assert_equals("2", results[0].bar)
Пример #6
0
def test_parse_csv_data():
    # utf-8
    with codecs.open("tests/utf8.csv", "r", "utf-8") as f:
        delim.parse_csv_data(f.read())
    # iso8859
    with codecs.open("tests/win_encoded.csv", "r", "iso8859") as f:
        delim.parse_csv_data(f.read())

    # Open the files naively, much like it was coming from a web server.
    with open("tests/win_encoded.csv", "r") as f:
        delim.parse_csv_data(f.read())

    with open("tests/utf8.csv", "r") as f:
        delim.parse_csv_data(f.read())
Пример #7
0
def test_parse_csv_data():
    # utf-8
    with codecs.open('tests/utf8.csv', 'r', 'utf-8') as f:
        delim.parse_csv_data(f.read())
    # iso8859
    with codecs.open('tests/win_encoded.csv', 'r', 'iso8859') as f:
        delim.parse_csv_data(f.read())

    # Open the files naively, much like it was coming from a web server.
    with open('tests/win_encoded.csv', 'r') as f:
        delim.parse_csv_data(f.read())

    with open('tests/utf8.csv', 'r') as f:
        delim.parse_csv_data(f.read())
Пример #8
0
def test_parse_csv_data_no_mappings():
    data = "Name,Bar\n1,2\n3,4"
    results = delim.parse_csv_data(data)
    assert_equals(2, len(results))
    assert_equals([("Name", "1"), ("Bar", "2")], results[0])
Пример #9
0
def test_validate_on_duplicates():
    data = "Name,Bar\n1,2\n1,2"
    fields = [delim.CSVField("Name"), delim.CSVField("Bar")]
    with assert_raises(delim.CSVError) as cm:
        delim.parse_csv_data(data, fields, unique_on="name")
    assert_true("duplicate rows with name: 1", cm.exception.message)
Пример #10
0
def test_validate_csv_missing_columns():
    with assert_raises(delim.CSVError) as cm:
        fields = [delim.CSVField("Foo"), delim.CSVField("Bar"), delim.CSVField("Baz")]
        delim.parse_csv_data("Foo", fields, True)
    assert_true("missing: Bar, Baz", cm.exception.message)
Пример #11
0
def test_validate_csv_empty():
    with assert_raises(delim.CSVError) as cm:
        delim.parse_csv_data("", [])
    assert_equals("CSV appears to be empty", cm.exception.message)
Пример #12
0
def test_validate_csv_unknown_columns():
    data = "Foo,Bar,Baz"
    with assert_raises(delim.CSVError) as cm:
        delim.parse_csv_data(data, [], True)
    assert_true("unkown: Foo, Bar, Baz", cm.exception.message)
Пример #13
0
def test_parse_csv_data_no_mappings():
    data = "Name,Bar\n1,2\n3,4"
    results = delim.parse_csv_data(data)
    assert_equals(2, len(results))
    assert_equals([("Name", "1"), ("Bar", "2")], results[0])
Пример #14
0
def test_validate_on_duplicates():
    data = "Name,Bar\n1,2\n1,2"
    fields = [delim.CSVField('Name'), delim.CSVField('Bar')]
    with assert_raises(delim.CSVError) as cm:
        delim.parse_csv_data(data, fields, unique_on="name")
    assert_true("duplicate rows with name: 1", cm.exception.message)
Пример #15
0
def test_validate_csv_empty():
    with assert_raises(delim.CSVError) as cm:
        delim.parse_csv_data("", [])
    assert_equals("CSV appears to be empty", cm.exception.message)
Пример #16
0
def test_validate_csv_unknown_columns():
    data = "Foo,Bar,Baz"
    with assert_raises(delim.CSVError) as cm:
        delim.parse_csv_data(data, [], True)
    assert_true("unkown: Foo, Bar, Baz", cm.exception.message)