def _query_test_runs_by_build_name(name, start_date, stop_date): with session_scope() as session: tests = api.get_test_run_dict_by_run_meta_key_value( 'build_name', name, start_date, stop_date, session) tests = test_run_aggregator.TestRunAggregator(tests).aggregate( datetime_resolution=datetime_resolution) return tests
def _query_test_runs_by_build_name(name, start_date, stop_date): with session_scope() as session: tests = api.get_test_run_dict_by_run_meta_key_value('build_name', name, start_date, stop_date, session) tests = test_run_aggregator.TestRunAggregator(tests).aggregate( datetime_resolution=datetime_resolution) return tests
def get_test_runs_by_build_name(build_name): session = get_session() key = 'build_name' value = build_name if not key or not value: return 'A key and value must be specified', 400 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') if datetime_resolution not in ['sec', 'min', 'hour', 'day']: return ('Datetime resolution: %s, is not a valid' ' choice' % datetime_resolution), 400 tests = api.get_test_run_dict_by_run_meta_key_value(key, value, start_date, stop_date, session) tests = test_run_aggregator.TestRunAggregator(tests).aggregate( datetime_resolution=datetime_resolution) return jsonify({'tests': tests})
def test_get_test_run_dict_by_run_meta_key_value(self): timestamp_a = datetime.datetime.utcnow() timestamp_b = timestamp_a + datetime.timedelta(minutes=2) run_a = api.create_run() run_b = api.create_run() api.add_run_metadata({'key': 'true'}, run_a.id) api.add_run_metadata({'key': 'not so true'}, run_b.id) test_a = api.create_test('fake_test') api.create_test_run(test_a.id, run_a.id, 'success', timestamp_a, timestamp_b) api.create_test_run(test_a.id, run_b.id, 'fail', timestamp_a, datetime.datetime.utcnow()) test_run_dicts = api.get_test_run_dict_by_run_meta_key_value( 'key', 'true') self.assertEqual(1, len(test_run_dicts)) self.assertEqual([{ 'test_id': 'fake_test', 'status': 'success', 'start_time': timestamp_a, 'stop_time': timestamp_b, }], test_run_dicts)
def test_get_test_run_dict_by_run_meta_key_value(self): timestamp_a = datetime.datetime.utcnow() timestamp_b = timestamp_a + datetime.timedelta(minutes=2) run_a = api.create_run() run_b = api.create_run() api.add_run_metadata({'key': 'true'}, run_a.id) api.add_run_metadata({'key': 'not so true'}, run_b.id) test_a = api.create_test('fake_test') api.create_test_run(test_a.id, run_a.id, 'success', timestamp_a, timestamp_b) api.create_test_run(test_a.id, run_b.id, 'fail', timestamp_a, datetime.datetime.utcnow()) test_run_dicts = api.get_test_run_dict_by_run_meta_key_value('key', 'true') self.assertEqual(1, len(test_run_dicts)) self.assertEqual([{ 'test_id': 'fake_test', 'status': 'success', 'start_time': timestamp_a, 'stop_time': timestamp_b, }], test_run_dicts)