def test_db_query_outofrange(self): ship_id = str(uuid1()) # create dataframe date_rng = pd.date_range(start='01/01/2018', end='02/01/2018', freq='15T') df = pd.DataFrame(date_rng, columns=['datetime']) df['value'] = np.random.uniform(0, 1000, size=(len(date_rng))) df['datetime'] = pd.to_datetime(df['datetime']) df = df.set_index('datetime') # save new timeseries DBManager.save_energy_entry(ship_id, df) # query start = '2019-01-01T00:00:00Z' end = '2022-01-05T00:00:00Z' got = DBManager.get_energy_entry(ship_id, start, end, MOCK_LOG) self.assertTrue(not got) # remove ship entry DBManager.delete_full_energy_entry(ship_id, MOCK_LOG)
def respond_to_query(ship_id, start, end, log): err = Parser.validate_query(ship_id, start, end) if err != '': return Response( dumps({'error': err}), status=HTTPStatus.BAD_REQUEST, mimetype='application/json', ) try: ship_id = int(ship_id) except ValueError: ship_id = str(ship_id) log.info('Got query params: ship_id: {}, start: {}, end: {}'.format( ship_id, start, end)) db_obj = DBManager.get_energy_entry(ship_id, start, end, log) if not db_obj: message = 'No entries found in date range {} to {}'.format(start, end) log.warning('Attempting to query invalid timeframe. sending: %s' % message) return Response( dumps({'error': message}), status=HTTPStatus.BAD_REQUEST, mimetype='application/json', ) log.debug("Retrived saved data: {}".format(db_obj)) resp, err = Parser.db_obj_to_query_response(ship_id, db_obj, log) if err != '': return Response( dumps({'error': err}), status=HTTPStatus.SERVICE_UNAVAILABLE, mimetype='application/json', ) log.debug('Converted retrived to json response: {}'.format(resp)) return Response(resp, status=HTTPStatus.OK, mimetype='application/json')