def test_add_table_2(self): """Test adding new table at a specific index""" extcsv = Writer() extcsv.add_table('CONTENT', 'basic metadata, index 2', index=2) self.assertTrue('CONTENT$2' in extcsv.extcsv_ds.keys(), 'table not found')
def test_add_value_5(self): """Test adding list of values""" extcsv = Writer() extcsv.add_data('CONTENT', 'WOUDC', field='Class') extcsv.add_data('CONTENT', ['v1,v2', 7, 8, 9, 10], field='Class') self.assertEqual(['WOUDC', 'v1,v2', 7, 8, 9, 10], get_data(extcsv, 'CONTENT', 'Class'), 'expected specific value')
def test_add_field_1(self): """Test adding new field to table""" extcsv = Writer() extcsv.add_field('CONTENT', 'Class') self.assertTrue('CONTENT$1' in extcsv.extcsv_ds.keys(), 'table not found') self.assertTrue('Class' in extcsv.extcsv_ds['CONTENT$1'].keys(), 'field not found')
def test_add_field_3(self): """Test order of insert of fields""" extcsv = Writer() extcsv.add_field('CONTENT', 'Class,Category,Level') keys = extcsv.extcsv_ds['CONTENT$1'].keys() self.assertEqual(0, keys.index('comments'), 'index 0 mismatch') self.assertEqual(1, keys.index('Class'), 'index 1 mismatch') self.assertEqual(2, keys.index('Category'), 'index 2 mismatch') self.assertEqual(3, keys.index('Level'), 'index 3 mismatch')
def test_add_table_1(self): """Test adding new table""" extcsv = Writer() extcsv.add_table('CONTENT', 'basic metadata, index 1') self.assertTrue('CONTENT$1' in extcsv.extcsv_ds.keys(), 'table not found') self.assertEqual('basic metadata, index 1', get_data(extcsv, 'CONTENT', 'comments')[0], 'invalid table comment')
def test_add_value_1(self): """Test adding new value to existing table.field, veritically""" extcsv = Writer() extcsv.add_data('CONTENT', 'WOUDC', field='Class') self.assertTrue('CONTENT$1' in extcsv.extcsv_ds.keys(), 'table CONTENT not found') self.assertTrue('Class' in extcsv.extcsv_ds['CONTENT$1'].keys(), 'field CONTENT.Class not found') self.assertTrue('WOUDC' in get_data(extcsv, 'CONTENT', 'Class'), 'value CONTENT.CLASS WOUDC not found')
def test_add_field_2(self): """Test adding multiple new fields to table""" extcsv = Writer() extcsv.add_field('CONTENT', 'Class,Category,Level') self.assertTrue('CONTENT$1' in extcsv.extcsv_ds.keys(), 'table CONTENT not found') self.assertTrue('Class' in extcsv.extcsv_ds['CONTENT$1'].keys(), 'field CONTENT.Class not found') self.assertTrue('Category' in extcsv.extcsv_ds['CONTENT$1'].keys(), 'field CONTENT.Class not found') self.assertTrue('Level' in extcsv.extcsv_ds['CONTENT$1'].keys(), 'field CONTENT.Class not found')
def test_remove_value_all_occurences(self): """Test remove all occurences of value""" extcsv = Writer() extcsv.add_data('TABLE', ['v1', 'v2', 'v1', 'v1', 'v2', 'v1'], field='Field1') extcsv.add_data('TABLE', ['v1', 'v2', 'v3', 'v2'], field='Field1', index=2) extcsv.remove_data('TABLE', 'Field1', 'v1', all_occurences=True) self.assertTrue('v1' not in get_data(extcsv, 'TABLE', 'Field1'), 'unexpected value found') extcsv.remove_data('TABLE', 'Field1', 'v2', index=2, all_occurences=True) self.assertFalse('v2' in get_data(extcsv, 'TABLE', 'Field1', index=2), 'unexpected value found')
def test_add_table_3(self): """Test order of tables to see if order of insert is preserved""" extcsv = Writer() extcsv.add_table('CONTENT', 'basic metadata, index 1') extcsv.add_table('CONTENT', 'basic metadata, index 2', index=2) extcsv.add_table('CONTENT', 'basic metadata, index 3', index=3) extcsv.add_table('CONTENT', 'basic metadata, index 4', index=4) self.assertTrue('CONTENT$1' in extcsv.extcsv_ds.keys(), 'table 1 not found') self.assertTrue('CONTENT$2' in extcsv.extcsv_ds.keys(), 'table 2 not found') self.assertTrue('CONTENT$3' in extcsv.extcsv_ds.keys(), 'table 3 not found') self.assertTrue('CONTENT$4' in extcsv.extcsv_ds.keys(), 'table 4 not found') self.assertEqual(0, extcsv.extcsv_ds.keys().index('CONTENT$1'), 'table 1 index mismatch') self.assertEqual(1, extcsv.extcsv_ds.keys().index('CONTENT$2'), 'table 2 index mismatch') self.assertEqual(2, extcsv.extcsv_ds.keys().index('CONTENT$3'), 'table 3 index mismatch') self.assertEqual(3, extcsv.extcsv_ds.keys().index('CONTENT$4'), 'table 4 index mismatch')
def test_remove_value_by_index(self): """Test remove value by index""" extcsv = Writer() extcsv.add_data('TABLE', ['v1', 'v2', 'v1', 'v1', 'v2', 'v1'], field='Field1') extcsv.add_data('TABLE', ['v1', 'v2', 'v3', 'v2'], field='Field1', index=2) extcsv.remove_data('TABLE', 'Field1', 'v1', d_index=3) self.assertEqual('v2', get_data(extcsv, 'TABLE', 'Field1')[3], 'expected specific value') self.assertEqual(['v1', 'v2', 'v1', 'v2', 'v1'], get_data(extcsv, 'TABLE', 'Field1'), 'expected specific value') extcsv.remove_data('TABLE', 'Field1', 'v2', index=2, d_index=3) self.assertEqual('v3', get_data(extcsv, 'TABLE', 'Field1', index=2)[2], 'expected specific value')
def test_remove_value_first(self): """Test remove first occurence value""" extcsv = Writer() extcsv.add_data('TABLE', ['v1', 'v2', 'v1', 'v1', 'v2', 'v1'], field='Field1') extcsv.add_data('TABLE', ['v1', 'v2', 'v3', 'v2'], field='Field1', index=2) extcsv.remove_data('TABLE', 'Field1', 'v1') self.assertEqual('v2', get_data(extcsv, 'TABLE', 'Field1')[0], 'expected specific value') self.assertEqual(['v2', 'v1', 'v1', 'v2', 'v1'], get_data(extcsv, 'TABLE', 'Field1'), 'expected specific value') extcsv.remove_data('TABLE', 'Field1', 'v2', index=2) self.assertEqual('v1', get_data(extcsv, 'TABLE', 'Field1', index=2)[0], 'expected specific value')
def test_remove_field(self): """Test removing field""" extcsv = Writer() extcsv.add_data('TABLE', 'v1,v2', field='Field1,Field2,Field3') extcsv.add_data('TABLE', 'v1,v2', field='Field1,Field2,Field3', index=2) extcsv.remove_field('TABLE', 'Field2', index=2) extcsv.remove_field('TABLE', 'Field1') self.assertTrue('Fields2' not in extcsv.extcsv_ds['TABLE$2'].keys(), 'unexpected field found') self.assertTrue('Fields1' not in extcsv.extcsv_ds['TABLE$1'].keys(), 'unexpected field found') self.assertEqual(['comments', 'Field2', 'Field3'], extcsv.extcsv_ds['TABLE$1'].keys(), 'expected specific value') self.assertEqual(['comments', 'Field1', 'Field3'], extcsv.extcsv_ds['TABLE$2'].keys(), 'expected specific value')
def test_add_value_4(self): """Test insert order when adding multiple values to a field""" extcsv = Writer() field_val = 'Wavelength,S-Irradiance,Time' extcsv.add_data('GLOBAL', '290.0,1.700E-06', field=field_val) extcsv.add_data('GLOBAL', '290.5,8.000E-07', field=field_val) extcsv.add_data('GLOBAL', '291.0,0.000E+00', field=field_val) extcsv.add_data('GLOBAL', '291.5,8.000E-07', field=field_val) self.assertEqual(['290.0', '290.5', '291.0', '291.5'], get_data(extcsv, 'GLOBAL', 'Wavelength'), 'expected specific value') self.assertEqual(['1.700E-06', '8.000E-07', '0.000E+00', '8.000E-07'], get_data(extcsv, 'GLOBAL', 'S-Irradiance'), 'expected specific value') self.assertEqual([], get_data(extcsv, 'GLOBAL', 'Time'), 'expected specific value')
def test_add_value_3(self): """Test adding value to table given identical table names""" extcsv = Writer() extcsv.add_field('GLOBAL', 'Wavelength,S-Irradiance,Time') extcsv.add_field('GLOBAL', 'Wavelength,S-Irradiance,Time', index=2) extcsv.add_field('GLOBAL', 'Wavelength,S-Irradiance,Time', index=3) extcsv.add_data('GLOBAL', '290.0', index=2, field='Wavelength') extcsv.add_data('GLOBAL', '07:28:49', index=3, field='Time') extcsv.add_data('GLOBAL', '1.700E-06', field='S-Irradiance') self.assertEqual(['290.0'], get_data(extcsv, 'GLOBAL', 'Wavelength', index=2), 'expected specific value') self.assertEqual(['07:28:49'], get_data(extcsv, 'GLOBAL', 'Time', index=3), 'expected specific value') self.assertEqual(['1.700E-06'], get_data(extcsv, 'GLOBAL', 'S-Irradiance'), 'expected specific value')
def test_add_value_2(self): """Test adding new value to existing table.field, horizontally""" extcsv = Writer() extcsv.add_field('CONTENT', 'Class,Category,Level') extcsv.add_data('CONTENT', 'a,b,c') self.assertTrue('CONTENT$1' in extcsv.extcsv_ds.keys(), 'table CONTENT not found') self.assertTrue('Class' in extcsv.extcsv_ds['CONTENT$1'].keys(), 'field CONTENT.Class not found') self.assertTrue('Category' in extcsv.extcsv_ds['CONTENT$1'].keys(), 'field CONTENT.Class not found') self.assertTrue('Level' in extcsv.extcsv_ds['CONTENT$1'].keys(), 'field CONTENT.Class not found') self.assertTrue('a' in get_data(extcsv, 'CONTENT', 'Class'), 'value CONTENT.Class not found') self.assertTrue('b' in get_data(extcsv, 'CONTENT', 'Category'), 'value CONTENT.Class not found') self.assertTrue('c' in get_data(extcsv, 'CONTENT', 'Level'), 'value CONTENT.Class not found')
def test_writer_reader(self): """ Produce woudc_extcsv.Writer object, use woudc_extcsv.Reader to check values """ # produce extcsv object extcsv = Writer(template=True) # add data here extcsv.add_comment('This file was generated by\ WODC_TO_CSX v1.0 using WODC 80-column formatted data.') extcsv.add_comment('\'na\' is used where Instrument\ Model or Number are not available.') extcsv.add_data('CONTENT', 'WOUDC,TotalOzone,1.0,1') extcsv.add_data('DATA_GENERATION', '2014-08-28,NOAA-CMDL,0.0') extcsv.add_data('PLATFORM', 'STN,031,MAUNA LOA,USA') extcsv.add_data('INSTRUMENT', 'Dobson,Beck,076') extcsv.add_data('LOCATION', '19.533,-155.574,3405') extcsv.add_data('TIMESTAMP', '+00:00:00,2014-04-01') extcsv.add_data('DAILY', '2014-04-01,0,2,283,,,,18', field='Date,WLCode,ObsCode,ColumnO3,StdDevO3,\ UTC_Begin,UTC_End,UTC_Mean,nObs,mMu,ColumnSO2') extcsv.add_data('DAILY', '2014-04-08,0,0,288,,,,23') extcsv.add_data('DAILY', '2014-04-09,0,0,279,,,,23') extcsv.add_data('DAILY', '2014-04-10,0,0,273,,,,24') extcsv.add_data('DAILY', '2014-04-11,0,0,274,,,,21') extcsv.add_data('DAILY', '2014-04-12,0,2,271,,,,18') extcsv.add_data('DAILY', '2014-04-13,0,2,274,,,,18') extcsv.add_data('DAILY', '2014-04-14,0,0,283,,,,23') extcsv.add_data('DAILY', '2014-04-15,0,0,285,,,,23') extcsv.add_data('DAILY', '2014-04-16,0,0,284,,,,23') extcsv.add_data('DAILY', '2014-04-17,0,0,280,,,,22') extcsv.add_data('DAILY', '2014-04-18,0,2,268,,,,18') extcsv.add_data('DAILY', '2014-04-19,0,2,271,,,,18') extcsv.add_data('DAILY', '2014-04-20,0,2,264,,,,18') extcsv.add_data('DAILY', '2014-04-21,0,0,278,,,,23') extcsv.add_data('DAILY', '2014-04-22,0,0,276,,,,21') extcsv.add_data('DAILY', '2014-04-23,0,0,280,,,,23') extcsv.add_data('DAILY', '2014-04-24,0,0,269,,,,22') extcsv.add_data('DAILY', '2014-04-25,0,0,275,,,,21') extcsv.add_data('DAILY', '2014-04-26,0,2,278,,,,18') extcsv.add_data('DAILY', '2014-04-28,0,0,296,,,,21') extcsv.add_data('DAILY', '2014-04-29,0,0,291,,,,23') extcsv.add_data('DAILY', '2014-04-30,0,0,294,,,,21', table_comment=' 1992 Coefficients in use') extcsv.add_data('TIMESTAMP', '+00:00:00,2014-04-30', field='UTCOffset,Date,Time', index=2) extcsv.add_data('MONTHLY', '2014-04-01,279,8.3,23', field='Date,ColumnO3,StdDevO3,Npts') extcsv_s = dumps(extcsv) # load my extcsv into Reader my_extcsv_to = loads(extcsv_s) # check tables self.assertTrue('DAILY' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('PLATFORM' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('LOCATION' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('TIMESTAMP' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('DATA_GENERATION' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('TIMESTAMP2' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('MONTHLY' in my_extcsv_to.sections, 'check totalozone in my extcsv') # check fields self.assertTrue('Level' in my_extcsv_to.sections['CONTENT'], 'check totalozone field in my extcsv') self.assertTrue('UTCOffset' in my_extcsv_to.sections['TIMESTAMP'], 'check totalozone field in my extcsv') self.assertTrue( 'ScientificAuthority' in my_extcsv_to.sections['DATA_GENERATION'], 'check totalozone field in my extcsv') self.assertTrue('Time' in my_extcsv_to.sections['TIMESTAMP2'], 'check totalozone field in my extcsv') self.assertTrue('ColumnO3' in my_extcsv_to.sections['MONTHLY'], 'check totalozone field in my extcsv') # check values self.assertEqual('19.533', my_extcsv_to.sections['LOCATION']['Latitude'], 'check totalozone value in my extcsv') self.assertEqual('NOAA-CMDL', my_extcsv_to.sections['DATA_GENERATION']['Agency'], 'check totalozone value in my extcsv') self.assertEqual('1', my_extcsv_to.sections['CONTENT']['Form'], 'check totalozone value in my extcsv') self.assertEqual('23', my_extcsv_to.sections['MONTHLY']['Npts'], 'check totalozone value in my extcsv') my_to_daily = StringIO(my_extcsv_to.sections['DAILY']['_raw']) my_daily_rows = csv.reader(my_to_daily) my_daily_header = my_daily_rows.next() self.assertTrue('WLCode' in my_daily_header, 'check totalozone daily field in my extcsv') self.assertTrue('nObs' in my_daily_header, 'check totalozone daily field in my extcsv') self.assertTrue('ColumnO3' in my_daily_header, 'check totalozone daily field in my extcsv') self.assertTrue('ColumnSO2' in my_daily_header, 'check totalozone daily field in my extcsv') self.assertEqual(0, my_daily_header.index('Date'), 'check totalozone daily field order in my extcsv') self.assertEqual( len(my_daily_header) - 1, my_daily_header.index('ColumnSO2'), 'check totalozone daily field order in my extcsv') my_daily_row = None # seek for i in range(1, 6): my_daily_row = my_daily_rows.next() self.assertEqual('274', my_daily_row[my_daily_header.index('ColumnO3')], 'check totalozone daily value in my extcsv') self.assertEqual('', my_daily_row[my_daily_header.index('StdDevO3')], 'check totalozone daily value in my extcsv') self.assertEqual('', my_daily_row[my_daily_header.index('UTC_Begin')], 'check totalozone daily value in my extcsv') self.assertEqual('21', my_daily_row[my_daily_header.index('UTC_Mean')], 'check totalozone daily value in my extcsv') for i in range(1, 18): my_daily_row = my_daily_rows.next() self.assertEqual('291', my_daily_row[my_daily_header.index('ColumnO3')], 'check totalozone daily value in my extcsv') self.assertEqual('23', my_daily_row[my_daily_header.index('UTC_Mean')], 'check totalozone daily value in my extcsv') with self.assertRaises(TypeError): extcsv_s = dump(extcsv)
def test_remove_table(self): """Test removing table""" # new extcsv object extcsv = Writer() extcsv.add_data('CONTENT', 'WOUDC', field='Class') extcsv.add_data('PLATFORM', 'ID', field='001') extcsv.add_data('TIMESTAMP', 'Time', field='00:00:00') extcsv.add_data('TIMESTAMP', 'Time', field='01:00:00', index=2) extcsv.remove_table('CONTENT') extcsv.remove_table('TIMESTAMP', index=2) self.assertTrue('CONTENT$1' not in extcsv.extcsv_ds.keys(), 'unexpected table found') self.assertTrue('TIMESTAMP$2' not in extcsv.extcsv_ds.keys(), 'unexpected table found') self.assertTrue('TIMESTAMP$1' in extcsv.extcsv_ds.keys(), 'unexpected table found')
def test_writer_reader(self): """ Produce woudc_extcsv.Writer object, use woudc_extcsv.Reader to check values """ # produce extcsv object extcsv = Writer(template=True) # add data here extcsv.add_comment('This file was generated by\ WODC_TO_CSX v1.0 using WODC 80-column formatted data.') extcsv.add_comment('\'na\' is used where Instrument\ Model or Number are not available.') extcsv.add_data('CONTENT', 'WOUDC,TotalOzone,1.0,1') extcsv.add_data('DATA_GENERATION', '2014-08-28,NOAA-CMDL,0.0') extcsv.add_data('PLATFORM', 'STN,031,MAUNA LOA,USA') extcsv.add_data('INSTRUMENT', 'Dobson,Beck,076') extcsv.add_data('LOCATION', '19.533,-155.574,3405') extcsv.add_data('TIMESTAMP', '+00:00:00,2014-04-01') extcsv.add_data('DAILY', '2014-04-01,0,2,283,,,,18', field='Date,WLCode,ObsCode,ColumnO3,StdDevO3,\ UTC_Begin,UTC_End,UTC_Mean,nObs,mMu,ColumnSO2') extcsv.add_data('DAILY', '2014-04-08,0,0,288,,,,23') extcsv.add_data('DAILY', '2014-04-09,0,0,279,,,,23') extcsv.add_data('DAILY', '2014-04-10,0,0,273,,,,24') extcsv.add_data('DAILY', '2014-04-11,0,0,274,,,,21') extcsv.add_data('DAILY', '2014-04-12,0,2,271,,,,18') extcsv.add_data('DAILY', '2014-04-13,0,2,274,,,,18') extcsv.add_data('DAILY', '2014-04-14,0,0,283,,,,23') extcsv.add_data('DAILY', '2014-04-15,0,0,285,,,,23') extcsv.add_data('DAILY', '2014-04-16,0,0,284,,,,23') extcsv.add_data('DAILY', '2014-04-17,0,0,280,,,,22') extcsv.add_data('DAILY', '2014-04-18,0,2,268,,,,18') extcsv.add_data('DAILY', '2014-04-19,0,2,271,,,,18') extcsv.add_data('DAILY', '2014-04-20,0,2,264,,,,18') extcsv.add_data('DAILY', '2014-04-21,0,0,278,,,,23') extcsv.add_data('DAILY', '2014-04-22,0,0,276,,,,21') extcsv.add_data('DAILY', '2014-04-23,0,0,280,,,,23') extcsv.add_data('DAILY', '2014-04-24,0,0,269,,,,22') extcsv.add_data('DAILY', '2014-04-25,0,0,275,,,,21') extcsv.add_data('DAILY', '2014-04-26,0,2,278,,,,18') extcsv.add_data('DAILY', '2014-04-28,0,0,296,,,,21') extcsv.add_data('DAILY', '2014-04-29,0,0,291,,,,23') extcsv.add_data('DAILY', '2014-04-30,0,0,294,,,,21', table_comment=' 1992 Coefficients in use') extcsv.add_data('TIMESTAMP', '+00:00:00,2014-04-30', field='UTCOffset,Date,Time', index=2) extcsv.add_data('MONTHLY', '2014-04-01,279,8.3,23', field='Date,ColumnO3,StdDevO3,Npts') extcsv_s = dumps(extcsv) # load my extcsv into Reader my_extcsv_to = loads(extcsv_s) # check tables self.assertTrue('DAILY' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('PLATFORM' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('LOCATION' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('TIMESTAMP' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('DATA_GENERATION' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('TIMESTAMP2' in my_extcsv_to.sections, 'check totalozone table in my extcsv') self.assertTrue('MONTHLY' in my_extcsv_to.sections, 'check totalozone in my extcsv') # check fields self.assertTrue('Level' in my_extcsv_to.sections['CONTENT'], 'check totalozone field in my extcsv') self.assertTrue('UTCOffset' in my_extcsv_to.sections['TIMESTAMP'], 'check totalozone field in my extcsv') self.assertTrue('ScientificAuthority' in my_extcsv_to.sections['DATA_GENERATION'], 'check totalozone field in my extcsv') self.assertTrue('Time' in my_extcsv_to.sections['TIMESTAMP2'], 'check totalozone field in my extcsv') self.assertTrue('ColumnO3' in my_extcsv_to.sections['MONTHLY'], 'check totalozone field in my extcsv') # check values self.assertEqual('19.533', my_extcsv_to.sections['LOCATION']['Latitude'], 'check totalozone value in my extcsv') self.assertEqual('NOAA-CMDL', my_extcsv_to.sections['DATA_GENERATION']['Agency'], 'check totalozone value in my extcsv') self.assertEqual('1', my_extcsv_to.sections['CONTENT']['Form'], 'check totalozone value in my extcsv') self.assertEqual('23', my_extcsv_to.sections['MONTHLY']['Npts'], 'check totalozone value in my extcsv') my_to_daily = StringIO(my_extcsv_to.sections['DAILY']['_raw']) my_daily_rows = csv.reader(my_to_daily) my_daily_header = my_daily_rows.next() self.assertTrue('WLCode' in my_daily_header, 'check totalozone daily field in my extcsv') self.assertTrue('nObs' in my_daily_header, 'check totalozone daily field in my extcsv') self.assertTrue('ColumnO3' in my_daily_header, 'check totalozone daily field in my extcsv') self.assertTrue('ColumnSO2' in my_daily_header, 'check totalozone daily field in my extcsv') self.assertEqual(0, my_daily_header.index('Date'), 'check totalozone daily field order in my extcsv') self.assertEqual(len(my_daily_header) - 1, my_daily_header.index('ColumnSO2'), 'check totalozone daily field order in my extcsv') my_daily_row = None # seek for i in range(1, 6): my_daily_row = my_daily_rows.next() self.assertEqual('274', my_daily_row[my_daily_header.index('ColumnO3')], 'check totalozone daily value in my extcsv') self.assertEqual('', my_daily_row[my_daily_header.index('StdDevO3')], 'check totalozone daily value in my extcsv') self.assertEqual('', my_daily_row[my_daily_header.index('UTC_Begin')], 'check totalozone daily value in my extcsv') self.assertEqual('21', my_daily_row[my_daily_header.index('UTC_Mean')], 'check totalozone daily value in my extcsv') for i in range(1, 18): my_daily_row = my_daily_rows.next() self.assertEqual('291', my_daily_row[my_daily_header.index('ColumnO3')], 'check totalozone daily value in my extcsv') self.assertEqual('23', my_daily_row[my_daily_header.index('UTC_Mean')], 'check totalozone daily value in my extcsv') with self.assertRaises(TypeError): extcsv_s = dump(extcsv)