def test_get_all_runs_time_series_by_key(self): time_a = datetime.datetime(1914, 6, 28, 10, 45, 0) run_a = api.create_run(run_at=time_a) run_b = api.create_run() time_c = datetime.datetime(1918, 11, 11, 11, 11, 11) run_c = api.create_run(run_at=time_c) api.add_run_metadata({'not_a_key': 'not_a_value'}, run_b.id) api.add_run_metadata({'a_key': 'a_value'}, run_a.id) api.add_run_metadata({'a_key': 'c_value'}, run_c.id) result = api.get_all_runs_time_series_by_key('a_key') self.assertEqual(2, len(result.keys())) self.assertIn(time_a.date(), [x.date() for x in result.keys()]) self.assertIn(time_c.date(), [x.date() for x in result.keys()])
def test_get_all_runs_time_series_by_key(self): time_a = datetime.datetime(1914, 6, 28, 10, 45, 0) run_a = api.create_run(run_at=time_a) run_b = api.create_run() time_c = datetime.datetime(1918, 11, 11, 11, 11, 11) run_c = api.create_run(run_at=time_c) api.add_run_metadata({'not_a_key': 'not_a_value'}, run_b.id) api.add_run_metadata({'a_key': 'a_value'}, run_a.id) api.add_run_metadata({'a_key': 'c_value'}, run_c.id) result = api.get_all_runs_time_series_by_key('a_key') self.assertEqual(2, len(result.keys())) self.assertIn(time_a.date(), [x.date() for x in result.keys()]) self.assertIn(time_c.date(), [x.date() for x in result.keys()])
def get_runs_grouped_by_metadata_per_datetime(key): session = get_session() start_date = _parse_datetimes(flask.request.args.get('start_date', None)) stop_date = _parse_datetimes(flask.request.args.get('stop_date', None)) datetime_resolution = flask.request.args.get('datetime_resolution', 'sec') sec_runs = api.get_all_runs_time_series_by_key(key, start_date, stop_date, session) if datetime_resolution not in ['sec', 'min', 'hour', 'day']: return ('Datetime resolution: %s, is not a valid' ' choice' % datetime_resolution), 400 runs = RunAggregator(sec_runs).aggregate(datetime_resolution) return jsonify({'runs': runs})
def get_runs_grouped_by_metadata_per_datetime(key): key = parse.unquote(key) start_date = _parse_datetimes(flask.request.args.get('start_date', None)) stop_date = _parse_datetimes(flask.request.args.get('stop_date', None)) datetime_resolution = flask.request.args.get('datetime_resolution', 'sec') with session_scope() as session: sec_runs = api.get_all_runs_time_series_by_key(key, start_date, stop_date, session) if datetime_resolution not in ['sec', 'min', 'hour', 'day']: return ('Datetime resolution: %s, is not a valid' ' choice' % datetime_resolution), 400 runs = run_aggregator.RunAggregator(sec_runs).aggregate( datetime_resolution) return jsonify({'runs': runs})