def add_data_types(table, data_types):
     for index in range(1, len(data_types)):
         column_def = FluxColumn(index=index - 1,
                                 data_type=data_types[index])
         table.columns.append(column_def)
Ejemplo n.º 2
0
    def test_create_structure(self):
        _time = datetime.datetime(1970,
                                  1,
                                  1,
                                  0,
                                  0,
                                  tzinfo=datetime.timezone.utc)

        table = FluxTable()
        table.columns = [
            FluxColumn(index=0,
                       label='result',
                       data_type='string',
                       group=False,
                       default_value='_result'),
            FluxColumn(index=1,
                       label='table',
                       data_type='long',
                       group=False,
                       default_value=''),
            FluxColumn(index=2,
                       label='_start',
                       data_type='dateTime:RFC3339',
                       group=True,
                       default_value=''),
            FluxColumn(index=3,
                       label='_stop',
                       data_type='dateTime:RFC3339',
                       group=True,
                       default_value=''),
            FluxColumn(index=4,
                       label='_time',
                       data_type='dateTime:RFC3339',
                       group=False,
                       default_value=''),
            FluxColumn(index=5,
                       label='_value',
                       data_type='double',
                       group=False,
                       default_value=''),
            FluxColumn(index=6,
                       label='_field',
                       data_type='string',
                       group=True,
                       default_value=''),
            FluxColumn(index=7,
                       label='_measurement',
                       data_type='string',
                       group=True,
                       default_value=''),
            FluxColumn(index=8,
                       label='location',
                       data_type='string',
                       group=True,
                       default_value='')
        ]

        record1 = FluxRecord(table=0)
        record1["table"] = 0
        record1["_start"] = _time
        record1["_stop"] = _time
        record1["_time"] = _time
        record1["_value"] = 1.0
        record1["_field"] = 'water level'
        record1["_measurement"] = 'h2o'
        record1["location"] = 'coyote_creek'

        record2 = FluxRecord(table=0)
        record2["table"] = 0
        record2["_start"] = _time
        record2["_stop"] = _time
        record2["_time"] = _time + datetime.timedelta(days=1)
        record2["_value"] = 2.0
        record2["_field"] = 'water level'
        record2["_measurement"] = 'h2o'
        record2["location"] = 'coyote_creek'

        table.records = [record1, record2]

        self.assertEqual(9, table.columns.__len__())
        self.assertEqual(2, table.records.__len__())

        # record 1
        self.assertEqual(_time, table.records[0].get_start())
        self.assertEqual(_time, table.records[0].get_stop())
        self.assertEqual(_time, table.records[0].get_time())
        self.assertEqual(1.0, table.records[0].get_value())
        self.assertEqual(1.0, table.records[0]["_value"])
        self.assertEqual('water level', table.records[0].get_field())
        self.assertEqual('water level', table.records[0]["_field"])
        self.assertEqual('h2o', table.records[0].get_measurement())
        self.assertEqual('h2o', table.records[0]["_measurement"])
        self.assertEqual('coyote_creek', table.records[0].values['location'])
        self.assertEqual('coyote_creek', table.records[0]['location'])

        # record 2
        self.assertEqual(_time, table.records[1].get_start())
        self.assertEqual(_time, table.records[1].get_stop())
        self.assertEqual(_time + datetime.timedelta(days=1),
                         table.records[1].get_time())
        self.assertEqual(2.0, table.records[1].get_value())
        self.assertEqual(2.0, table.records[1]["_value"])
        self.assertEqual('water level', table.records[1].get_field())
        self.assertEqual('water level', table.records[1]["_field"])
        self.assertEqual('h2o', table.records[1].get_measurement())
        self.assertEqual('h2o', table.records[1]["_measurement"])
        self.assertEqual('coyote_creek', table.records[1].values['location'])
        self.assertEqual('coyote_creek', table.records[1]['location'])