def sql2subunit(run_id, output=sys.stdout): session = api.get_session() test_runs = api.get_tests_run_dicts_from_run_id(run_id, session) session.close() output = subunit.v2.StreamResultToBytes(output) output.startTestRun() for test_id in test_runs: test = test_runs[test_id] write_test(output, test["start_time"], test["stop_time"], test["status"], test_id, test["metadata"]) output.stopTestRun()
def test_get_test_runs_dicts_with_no_stop_time(self): run = api.create_run() test_a = api.create_test('fake_test') start_time = datetime.datetime.utcnow() stop_time = None api.create_test_run(test_a.id, run.id, 'success', start_time, stop_time) test_run_dict = api.get_tests_run_dicts_from_run_id(run.uuid) self.assertEqual(1, len(test_run_dict)) self.assertIn('fake_test', test_run_dict) self.assertEqual(test_run_dict['fake_test']['status'], 'success') self.assertEqual(test_run_dict['fake_test']['start_time'], start_time) self.assertEqual(test_run_dict['fake_test']['stop_time'], stop_time)
def test_get_test_runs_dicts_with_no_stop_time(self): run = api.create_run() test_a = api.create_test('fake_test') start_time = datetime.datetime.utcnow() stop_time = None api.create_test_run(test_a.id, run.id, 'success', start_time, stop_time) test_run_dict = api.get_tests_run_dicts_from_run_id(run.uuid) self.assertEqual(1, len(test_run_dict)) self.assertIn('fake_test', test_run_dict) self.assertEqual(test_run_dict['fake_test']['status'], 'success') self.assertEqual(test_run_dict['fake_test']['start_time'], start_time) self.assertEqual(test_run_dict['fake_test']['stop_time'], stop_time)
def sql2subunit(run_id, output=sys.stdout): session = api.get_session() test_runs = api.get_tests_run_dicts_from_run_id(run_id, session) session.close() output = subunit.v2.StreamResultToBytes(output) output.startTestRun() for test_id in test_runs: test = test_runs[test_id] # NOTE(mtreinish): test_run_metadata is not guaranteed to be present # for the test_run. metadata = test.get('metadata', None) write_test(output, test['start_time'], test['stop_time'], test['status'], test_id, metadata) output.stopTestRun()
def sql2subunit(run_id, output=sys.stdout): session = api.get_session() test_runs = api.get_tests_run_dicts_from_run_id(run_id, session) session.close() output = subunit.v2.StreamResultToBytes(output) output.startTestRun() for test_id in test_runs: test = test_runs[test_id] # NOTE(mtreinish): test_run_metadata is not guaranteed to be present # for the test_run. metadata = test.get('metadata', None) write_test(output, test['start_time'], test['stop_time'], test['status'], test_id, metadata) output.stopTestRun()
def test_get_test_runs_dicts_with_meta(self): run = api.create_run() test_a = api.create_test('fake_test') test_run = api.create_test_run(test_a.id, run.id, 'success', datetime.datetime.utcnow(), datetime.datetime.utcnow()) run_meta = { 'key_a': 'value_b', 'key_b': 'value_a', 'attrs': 'test,smoke,notatest', } api.add_test_run_metadata(run_meta, test_run.id) test_run_dict = api.get_tests_run_dicts_from_run_id(run.uuid) self.assertEqual(3, len(test_run_dict['fake_test']['metadata'])) for meta in run_meta: self.assertIn(meta, test_run_dict['fake_test']['metadata']) self.assertEqual(run_meta[meta], test_run_dict['fake_test']['metadata'][meta])
def test_get_test_runs_dicts_with_meta(self): run = api.create_run() test_a = api.create_test('fake_test') test_run = api.create_test_run(test_a.id, run.id, 'success', datetime.datetime.utcnow(), datetime.datetime.utcnow()) run_meta = { 'key_a': 'value_b', 'key_b': 'value_a', 'attrs': 'test,smoke,notatest', } api.add_test_run_metadata(run_meta, test_run.id) test_run_dict = api.get_tests_run_dicts_from_run_id(run.uuid) self.assertEqual(3, len(test_run_dict['fake_test']['metadata'])) for meta in run_meta: self.assertIn(meta, test_run_dict['fake_test']['metadata']) self.assertEqual(run_meta[meta], test_run_dict['fake_test']['metadata'][meta])
def test_get_test_runs_dicts_from_run_id_are_in_chrono_order(self): run = api.create_run() test_a = api.create_test('fake_test') test_b = api.create_test('fake_test_2') test_c = api.create_test('fake_test_3') api.create_test_run(test_a.id, run.id, 'success', datetime.datetime.utcnow()) api.create_test_run(test_b.id, run.id, 'success', datetime.datetime(1914, 6, 28, 10, 45, 0)) api.create_test_run(test_c.id, run.id, 'success', datetime.datetime(2014, 8, 26, 20, 00, 00)) test_run_dicts = api.get_tests_run_dicts_from_run_id(run.uuid) self.assertEqual(len(test_run_dicts), 3) prev = None for test_run in test_run_dicts: if prev == None: prev = test_run continue self.assertTrue(test_run_dicts[test_run]['start_time'] > test_run_dicts[prev]['start_time']) prev = test_run
def test_get_test_runs_dicts_from_run_id_are_in_chrono_order(self): run = api.create_run() test_a = api.create_test('fake_test') test_b = api.create_test('fake_test_2') test_c = api.create_test('fake_test_3') api.create_test_run(test_a.id, run.id, 'success', datetime.datetime.utcnow()) api.create_test_run(test_b.id, run.id, 'success', datetime.datetime(1914, 6, 28, 10, 45, 0)) api.create_test_run(test_c.id, run.id, 'success', datetime.datetime(2014, 8, 26, 20, 00, 00)) test_run_dicts = api.get_tests_run_dicts_from_run_id(run.uuid) self.assertEqual(len(test_run_dicts), 3) prev = None for test_run in test_run_dicts: if prev == None: prev = test_run continue self.assertTrue(test_run_dicts[test_run]['start_time'] > test_run_dicts[prev]['start_time']) prev = test_run
def get_subunit_stream(self): stream = io.BytesIO() if self._run_id: session = self.session_factory() test_runs = db_api.get_tests_run_dicts_from_run_id( self._run_id, session) session.close() else: test_runs = self._test_runs output = subunit.v2.StreamResultToBytes(stream) output.startTestRun() for test_id in test_runs: test = test_runs[test_id] # NOTE(mtreinish): test_run_metadata is not guaranteed to be # present for the test run metadata = test.get('metadata', None) write_subunit.write_test(output, test['start_time'], test['stop_time'], test['status'], test_id, metadata) output.stopTestRun() stream.seek(0) return stream
def get_run_test_runs(run_id): run_id = parse.unquote(run_id) with session_scope() as session: db_test_runs = api.get_tests_run_dicts_from_run_id(run_id, session) return jsonify(db_test_runs)
def get_run_test_runs(run_id): run_id = parse.unquote(run_id) with session_scope() as session: db_test_runs = api.get_tests_run_dicts_from_run_id(run_id, session) return jsonify(db_test_runs)
def get_run_test_runs(run_id): session = get_session() db_test_runs = api.get_tests_run_dicts_from_run_id(run_id, session) return jsonify(db_test_runs)