示例#1
0
    def test_data_type(self):
        # device_id
        self.retrieve_args[0] = 20

        # data_type
        self.retrieve_args[3] = 'A'

        query_db.perform_query = self.format_list_factory(
            "SELECT time, data FROM data_raw as raw WHERE serial = %s AND type = %s ORDER BY time DESC;",
            (20, 'A')
        )
        self.assertEqual(query_db.retrieve_within_filters(*self.retrieve_args), 'perform_query called')
示例#2
0
    def test_device_id(self):
        # device_id
        self.retrieve_args[0] = 10

        query_db.perform_query = self.format_list_factory(
            "SELECT * FROM crosstab('SELECT time, type, data from data_raw as raw WHERE "\
            "serial = %s', 'SELECT unnest(ARRAY[''I'', ''W'', ''V'', ''T''])') AS "\
            "ct_result(time TIMESTAMP, I BIGINT, W BIGINT, V BIGINT, T BIGINT) ORDER BY "\
            "time DESC;",
            (10,)
        )
        self.assertEqual(query_db.retrieve_within_filters(*self.retrieve_args), 'perform_query called')
示例#3
0
    def test_limit(self):
        # device_id
        self.retrieve_args[0] = 40

        # data_type
        self.retrieve_args[3] = 'C'

        # limit
        self.retrieve_args[5] = 41

        query_db.perform_query = self.format_list_factory(
            "SELECT time, data FROM data_raw as raw WHERE serial = %s AND type = %s ORDER BY time DESC LIMIT %s;",
            (40, 'C', 41)
        )
        self.assertEqual(query_db.retrieve_within_filters(*self.retrieve_args), 'perform_query called')
示例#4
0
    def test_device_other(self):
        # device_id
        self.retrieve_args[0] = 100

        # data_type
        self.retrieve_args[3] = 'I'

        # device
        self.retrieve_args[7] = 'foo'

        query_db.perform_query = self.format_list_factory(
            "SELECT time, data FROM data_raw as raw WHERE serial = %s AND type = %s AND device = %s"\
            " ORDER BY time DESC;",
            (100, 'I', 'foo')
        )
        self.assertEqual(query_db.retrieve_within_filters(*self.retrieve_args), 'perform_query called')
示例#5
0
    def test_device_egauge(self):
        # device_id
        self.retrieve_args[0] = 90

        # data_type
        self.retrieve_args[3] = 'H'

        # device
        self.retrieve_args[7] = 'egauge'

        query_db.perform_query = self.format_list_factory(
            "SELECT time, data FROM data_raw as raw WHERE serial = %s AND type = %s AND device IS NOT NULL"\
            " ORDER BY time DESC;",
            (90, 'H')
        )
        self.assertEqual(query_db.retrieve_within_filters(*self.retrieve_args), 'perform_query called')
示例#6
0
    def test_end_time(self):
        # device_id
        self.retrieve_args[0] = 60

        # data_type
        self.retrieve_args[3] = 'E'

        # end_time
        self.retrieve_args[2] = 61

        query_db.perform_query = self.format_list_factory(
            "SELECT time, data FROM data_raw as raw WHERE serial = %s AND time <= to_timestamp(%s)"\
            " AND type = %s ORDER BY time DESC;",
            (60, 61, 'E')
        )
        self.assertEqual(query_db.retrieve_within_filters(*self.retrieve_args), 'perform_query called')
示例#7
0
    def test_start_time(self):
        # device_id
        self.retrieve_args[0] = 50

        # data_type
        self.retrieve_args[3] = 'D'

        # start_time
        self.retrieve_args[1] = 51

        query_db.perform_query = self.format_list_factory(
            "SELECT time, data FROM data_raw as raw WHERE serial = %s AND time >= to_timestamp(%s)"\
            " AND type = %s ORDER BY time DESC;",
            (50, 51, 'D')
        )
        self.assertEqual(query_db.retrieve_within_filters(*self.retrieve_args), 'perform_query called')
示例#8
0
    def test_diff(self):
        # device_id
        self.retrieve_args[0] = 110

        # data_type
        self.retrieve_args[3] = 'J'

        # device
        self.retrieve_args[7] = 'bar'

        #diff
        self.retrieve_args[8] = True

        query_db.perform_query = self.format_list_factory(
            "SELECT time, data  - lag(data) OVER (ORDER BY time DESC) as diff FROM data_raw as raw WHERE serial = %s"\
            " AND type = %s AND device = %s ORDER BY time DESC;",
            (110, 'J', 'bar')
        )
        self.assertEqual(query_db.retrieve_within_filters(*self.retrieve_args), 'perform_query called')
示例#9
0
    def test_list_format_energy(self):
        # device_id
        self.retrieve_args[0] = 130

        # data_type
        self.retrieve_args[3] = 'P'

        # device
        self.retrieve_args[7] = 'qux'

        # granularity
        self.retrieve_args[9] = 131

        # list_format
        self.retrieve_args[10] = 'energy'

        query_db.perform_query = self.format_list_factory(
            "SELECT time, abs(CAST(lag(data) OVER (ORDER BY time DESC) - data AS DECIMAL) / 36e5)"\
            " FROM data_raw as raw WHERE serial = %s AND type = %s AND device = %s AND"\
            " CAST(extract(epoch from time) as INTEGER) %% %s = 0 ORDER BY time DESC;",
            (130, 'P', 'qux', 131)
        )
        self.assertEqual(query_db.retrieve_within_filters(*self.retrieve_args), 'perform_query called')