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)
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)
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)
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)
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)
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())
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())
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])
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)
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)
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)
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)
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)