Esempio n. 1
0
    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)
Esempio n. 2
0
 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)