@@ -40,6 +40,29 @@ def test_basic_example_a_with_supplied_header(self):
40
40
self .assertEqual (2 , num_lines )
41
41
csv_file .close ()
42
42
43
+ def test_basic_example_a_with_duplicate_column_names (self ):
44
+ """Test loading of a simple CSV file with a provided header
45
+ that contains duplicate names
46
+ """
47
+ test_file = os .path .join (DATA_DIR , 'TypedCsvReader.example.a-no-header.csv' )
48
+ csv_file = open (test_file )
49
+ test_file = TypedColumnReader .TypedColumnReader (csv_file ,
50
+ column_sep = ',' ,
51
+ header = 'one,one,three,four' )
52
+ num_lines = 0
53
+ got_exception = False
54
+ try :
55
+ for _ in test_file :
56
+ num_lines += 1
57
+ except TypedColumnReader .ContentError as e :
58
+ self .assertEqual (2 , e .column )
59
+ self .assertEqual (0 , e .row )
60
+ self .assertEqual ('one' , e .value )
61
+ got_exception = True
62
+ self .assertTrue (got_exception )
63
+ self .assertEqual (0 , num_lines )
64
+ csv_file .close ()
65
+
43
66
def test_basic_example_a_gzip (self ):
44
67
"""Test loading of a simple CSV file (gzipped)
45
68
"""
@@ -65,7 +88,7 @@ def test_basic_example_b_unknown_type(self):
65
88
num_lines += 1
66
89
except TypedColumnReader .UnknownTypeError as e :
67
90
self .assertEqual (4 , e .column )
68
- self .assertAlmostEqual ('unknown-type' , e .column_type )
91
+ self .assertEqual ('unknown-type' , e .column_type )
69
92
got_exception = True
70
93
self .assertTrue (got_exception )
71
94
self .assertEqual (0 , num_lines )
@@ -85,7 +108,7 @@ def test_basic_example_c_too_many_colons(self):
85
108
except TypedColumnReader .ContentError as e :
86
109
self .assertEqual (4 , e .column )
87
110
self .assertEqual (1 , e .row )
88
- self .assertAlmostEqual ('four:unknown-type:too-many-colons' , e .value )
111
+ self .assertEqual ('four:unknown-type:too-many-colons' , e .value )
89
112
got_exception = True
90
113
self .assertTrue (got_exception )
91
114
self .assertEqual (0 , num_lines )
@@ -105,8 +128,8 @@ def test_basic_example_d_wrong_type(self):
105
128
except TypedColumnReader .ContentError as e :
106
129
self .assertEqual (1 , e .column )
107
130
self .assertEqual (2 , e .row )
108
- self .assertAlmostEqual ('A string' , e .value )
109
- self .assertAlmostEqual ('Does not comply with column type' , e .message )
131
+ self .assertEqual ('A string' , e .value )
132
+ self .assertEqual ('Does not comply with column type' , e .message )
110
133
got_exception = True
111
134
self .assertTrue (got_exception )
112
135
self .assertEqual (0 , num_lines )
@@ -138,7 +161,7 @@ def test_basic_example_d_too_many_values(self):
138
161
except TypedColumnReader .ContentError as e :
139
162
self .assertEqual (3 , e .column )
140
163
self .assertEqual (2 , e .row )
141
- self .assertAlmostEqual ('Too many values' , e .message )
164
+ self .assertEqual ('Too many values' , e .message )
142
165
got_exception = True
143
166
self .assertTrue (got_exception )
144
167
self .assertEqual (0 , num_lines )
0 commit comments