diff options
Diffstat (limited to 'catapult/telemetry/telemetry/internal/results/base_test_results_unittest.py')
-rw-r--r-- | catapult/telemetry/telemetry/internal/results/base_test_results_unittest.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/catapult/telemetry/telemetry/internal/results/base_test_results_unittest.py b/catapult/telemetry/telemetry/internal/results/base_test_results_unittest.py new file mode 100644 index 00000000..84e04383 --- /dev/null +++ b/catapult/telemetry/telemetry/internal/results/base_test_results_unittest.py @@ -0,0 +1,53 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +import sys +import unittest + +from telemetry.core import exceptions + + +class BaseTestResultsUnittest(unittest.TestCase): + + def CreateException(self): + try: + raise exceptions.IntentionalException + except Exception: + return sys.exc_info() + + def assertEquals(self, ex, res): + # This helps diagnose result mismatches. + if ex != res and isinstance(ex, list): + def CleanList(l): + res = [] + for x in l: + x = x.split('\n') + res.extend(x) + return res + ex = CleanList(ex) + res = CleanList(res) + max_len = max(len(ex), len(res)) + max_width = max([len(x) for x in ex + res]) + max_width = max(10, max_width) + print 'Lists differ!' + print '%*s | %*s' % (max_width, 'expected', max_width, 'result') + for i in range(max_len): + if i < len(ex): + e = ex[i] + else: + e = '' + if i < len(res): + r = res[i] + else: + r = '' + if e != r: + sep = '*' + else: + sep = '|' + print '%*s %s %*s' % (max_width, e, sep, max_width, r) + print '' + if ex != res and isinstance(ex, str) and isinstance(res, str): + print 'Strings differ!' + print 'exepected:\n%s' % repr(ex) + print 'result:\n%s\n' % repr(res) + super(BaseTestResultsUnittest, self).assertEquals(ex, res) |