| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this file, |
| # You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| import math |
| import time |
| import unittest |
| |
| from moztest.results import TestContext, TestResult, TestResultCollection |
| |
| |
| class Result(unittest.TestCase): |
| |
| def test_results(self): |
| self.assertRaises(AssertionError, |
| lambda: TestResult('test', result_expected='hello')) |
| t = TestResult('test') |
| self.assertRaises(ValueError, lambda: t.finish(result='good bye')) |
| |
| def test_time(self): |
| now = time.time() |
| t = TestResult('test') |
| time.sleep(1) |
| t.finish('PASS') |
| duration = time.time() - now |
| self.assertTrue(math.fabs(duration - t.duration) < 1) |
| |
| def test_custom_time(self): |
| t = TestResult('test', time_start=0) |
| t.finish(result='PASS', time_end=1000) |
| self.assertEqual(t.duration, 1000) |
| |
| |
| class Collection(unittest.TestCase): |
| |
| def setUp(self): |
| c1 = TestContext('host1') |
| c2 = TestContext('host2') |
| c3 = TestContext('host2') |
| c3.os = 'B2G' |
| c4 = TestContext('host1') |
| |
| t1 = TestResult('t1', context=c1) |
| t2 = TestResult('t2', context=c2) |
| t3 = TestResult('t3', context=c3) |
| t4 = TestResult('t4', context=c4) |
| |
| self.collection = TestResultCollection('tests') |
| self.collection.extend([t1, t2, t3, t4]) |
| |
| def test_unique_contexts(self): |
| self.assertEqual(len(self.collection.contexts), 3) |
| |
| if __name__ == '__main__': |
| unittest.main() |