Ejemplo n.º 1
0
    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')
Ejemplo n.º 2
0
    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')
Ejemplo n.º 3
0
 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')
Ejemplo n.º 4
0
    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')
Ejemplo n.º 5
0
    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')
Ejemplo n.º 6
0
    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')
Ejemplo n.º 7
0
    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')
Ejemplo n.º 8
0
    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')
Ejemplo n.º 9
0
    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')
Ejemplo n.º 10
0
    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')
Ejemplo n.º 11
0
    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')
Ejemplo n.º 12
0
    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')
Ejemplo n.º 13
0
    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')
Ejemplo n.º 14
0
 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')
Ejemplo n.º 15
0
    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')
Ejemplo n.º 16
0
 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')
Ejemplo n.º 17
0
 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')
Ejemplo n.º 18
0
 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')
Ejemplo n.º 19
0
 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')
Ejemplo n.º 20
0
    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')
Ejemplo n.º 21
0
    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')
Ejemplo n.º 22
0
    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')
Ejemplo n.º 23
0
 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')
Ejemplo n.º 24
0
 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')
Ejemplo n.º 25
0
 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')
Ejemplo n.º 26
0
 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')
Ejemplo n.º 27
0
    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')
Ejemplo n.º 28
0
    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')
Ejemplo n.º 29
0
    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')
Ejemplo n.º 30
0
    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')
Ejemplo n.º 31
0
    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)
Ejemplo n.º 32
0
 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')
Ejemplo n.º 33
0
 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')
Ejemplo n.º 34
0
    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)