| #!/usr/bin/env vpython3 |
| |
| # Copyright 2021 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import unittest |
| |
| from test_results import TestResult |
| from test_results import _build_json_data |
| |
| |
| class TestResultTests(unittest.TestCase): |
| def test_equality_and_hashing(self): |
| a1 = TestResult('foo', 'PASS', 'FAIL') |
| a2 = TestResult('foo', 'PASS', 'FAIL') |
| b = TestResult('bar', 'PASS', 'FAIL') |
| c = TestResult('foo', 'FAIL', 'FAIL') |
| d = TestResult('foo', 'PASS', 'PASS') |
| self.assertEqual(a1, a2) |
| self.assertEqual(hash(a1), hash(a2)) |
| self.assertNotEqual(a1, b) |
| self.assertNotEqual(a1, c) |
| self.assertNotEqual(a1, d) |
| |
| def test_pass_expected_repr(self): |
| pass_expected_repr = repr(TestResult('foo', 'PASS')) |
| self.assertIn('foo', pass_expected_repr) |
| self.assertIn('PASS', pass_expected_repr) |
| self.assertNotIn('FAIL', pass_expected_repr) |
| self.assertIn('TestResult', pass_expected_repr) |
| |
| def test_fail_expected_repr(self): |
| fail_expected_repr = repr(TestResult('foo', 'PASS', 'FAIL')) |
| self.assertIn('foo', fail_expected_repr) |
| self.assertIn('PASS', fail_expected_repr) |
| self.assertIn('FAIL', fail_expected_repr) |
| self.assertIn('TestResult', fail_expected_repr) |
| |
| |
| class BuildJsonDataTests(unittest.TestCase): |
| def test_grouping_of_tests(self): |
| t1 = TestResult('group1//foo', 'PASS') |
| t2 = TestResult('group1//bar', 'FAIL') |
| t3 = TestResult('group2//baz', 'FAIL') |
| actual_result = _build_json_data([t1, t2, t3], 123) |
| # yapf: disable |
| expected_result = { |
| 'interrupted': False, |
| 'path_delimiter': '//', |
| 'seconds_since_epoch': 123, |
| 'version': 3, |
| 'tests': { |
| 'group1': { |
| 'foo': { |
| 'expected': 'PASS', |
| 'actual': 'PASS' |
| }, |
| 'bar': { |
| 'expected': 'PASS', |
| 'actual': 'FAIL' |
| }}, |
| 'group2': { |
| 'baz': { |
| 'expected': 'PASS', |
| 'actual': 'FAIL' |
| }}}, |
| 'num_failures_by_type': { |
| 'PASS': 1, |
| 'FAIL': 2 |
| } |
| } |
| # yapf: enable |
| self.assertEqual(actual_result, expected_result) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |