@@ -40,6 +40,29 @@ def test_basic_example_a_with_supplied_header(self):
4040 self .assertEqual (2 , num_lines )
4141 csv_file .close ()
4242
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+
4366 def test_basic_example_a_gzip (self ):
4467 """Test loading of a simple CSV file (gzipped)
4568 """
@@ -65,7 +88,7 @@ def test_basic_example_b_unknown_type(self):
6588 num_lines += 1
6689 except TypedColumnReader .UnknownTypeError as e :
6790 self .assertEqual (4 , e .column )
68- self .assertAlmostEqual ('unknown-type' , e .column_type )
91+ self .assertEqual ('unknown-type' , e .column_type )
6992 got_exception = True
7093 self .assertTrue (got_exception )
7194 self .assertEqual (0 , num_lines )
@@ -85,7 +108,7 @@ def test_basic_example_c_too_many_colons(self):
85108 except TypedColumnReader .ContentError as e :
86109 self .assertEqual (4 , e .column )
87110 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 )
89112 got_exception = True
90113 self .assertTrue (got_exception )
91114 self .assertEqual (0 , num_lines )
@@ -105,8 +128,8 @@ def test_basic_example_d_wrong_type(self):
105128 except TypedColumnReader .ContentError as e :
106129 self .assertEqual (1 , e .column )
107130 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 )
110133 got_exception = True
111134 self .assertTrue (got_exception )
112135 self .assertEqual (0 , num_lines )
@@ -138,7 +161,7 @@ def test_basic_example_d_too_many_values(self):
138161 except TypedColumnReader .ContentError as e :
139162 self .assertEqual (3 , e .column )
140163 self .assertEqual (2 , e .row )
141- self .assertAlmostEqual ('Too many values' , e .message )
164+ self .assertEqual ('Too many values' , e .message )
142165 got_exception = True
143166 self .assertTrue (got_exception )
144167 self .assertEqual (0 , num_lines )
0 commit comments