def test_get_ts_end_date(self): v = json.loads(os.getenv('PTHELMA_TEST_ENHYDRIS_API')) cookies = enhydris_api.login(v['base_url'], v['user'], v['password']) # Create a time series in the database j = { 'gentity': v['station_id'], 'variable': v['variable_id'], 'unit_of_measurement': v['unit_of_measurement_id'], 'time_zone': v['time_zone_id'], } ts_id = enhydris_api.post_model(v['base_url'], cookies, 'Timeseries', j) # Get its last date while it has no data date = enhydris_api.get_ts_end_date(v['base_url'], cookies, ts_id) self.assertEqual(date.isoformat(), '0001-01-01T00:00:00') # Now upload some data ts = Timeseries(ts_id) ts.read(StringIO(self.test_timeseries)) enhydris_api.post_tsdata(v['base_url'], cookies, ts) # Get its last date date = enhydris_api.get_ts_end_date(v['base_url'], cookies, ts_id) self.assertEqual(date.isoformat(), '2014-01-05T08:00:00') # Get the last date of a nonexistent time series self.assertRaises(requests.HTTPError, enhydris_api.get_ts_end_date, v['base_url'], cookies, ts_id + 1)
def _update_timeseries(self): end_date_in_database = enhydris_api.get_ts_end_date( self.base_url, self.cookies, self.ts) self.logger.info('Last date in database: {}' .format(end_date_in_database)) ts_to_append = self._get_records_to_append(end_date_in_database) self.logger.info('Appending %d records' % (len(ts_to_append))) if len(ts_to_append): self.logger.info('First appended record: %s' % (ts_to_append.items()[0][0].isoformat())) self.logger.info('Last appended record: %s' % (ts_to_append.items()[-1][0].isoformat())) self._append_records_to_database(ts_to_append)