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')
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')
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')
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')
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')
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')
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')
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')
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')