aboutsummaryrefslogtreecommitdiff
path: root/crosperf/experiment_runner_unittest.py
diff options
context:
space:
mode:
authorDenis Nikitin <denik@google.com>2019-09-12 08:38:50 -0700
committerDenis Nikitin <denik@chromium.org>2019-09-13 13:43:17 +0000
commit8340fb901b5ffb6a53c2880a134330c3d0a70361 (patch)
treeaa77359bfcc45aebe6b1e2a124515894b630e299 /crosperf/experiment_runner_unittest.py
parent985566350786bf556c1d16c8f61f54c05ca035ec (diff)
downloadtoolchain-utils-8340fb901b5ffb6a53c2880a134330c3d0a70361.tar.gz
crosperf: Fix unittest execution time
Added mock patches for time.time() and time.sleep() in experiment_runner_unittest.py. Unittest execution time dropped from 12s to <1s. BUG=chromium:989571 TEST=cd <path-to-crosperf>; ./run_tests.sh Change-Id: I60af5305cd022b9a5854c444cfa9c50cbe0a22c0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1801423 Tested-by: Denis Nikitin <denik@chromium.org> Reviewed-by: Zhizhou Yang <zhizhouy@google.com> Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Diffstat (limited to 'crosperf/experiment_runner_unittest.py')
-rwxr-xr-xcrosperf/experiment_runner_unittest.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/crosperf/experiment_runner_unittest.py b/crosperf/experiment_runner_unittest.py
index 4809894f..e6cfbcd3 100755
--- a/crosperf/experiment_runner_unittest.py
+++ b/crosperf/experiment_runner_unittest.py
@@ -3,6 +3,7 @@
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+
"""Tests for the experiment runner module."""
from __future__ import print_function
@@ -10,9 +11,10 @@ from __future__ import print_function
import StringIO
import getpass
import os
+import time
-import mock
import unittest
+import mock
import experiment_runner
import experiment_status
@@ -137,12 +139,18 @@ class ExperimentRunnerTest(unittest.TestCase):
cmd_exec=self.mock_cmd_exec)
self.assertEqual(er.STATUS_TIME_DELAY, 30)
+ @mock.patch.object(time, 'time')
+ @mock.patch.object(time, 'sleep')
@mock.patch.object(experiment_status.ExperimentStatus, 'GetStatusString')
@mock.patch.object(experiment_status.ExperimentStatus, 'GetProgressString')
- def test_run(self, mock_progress_string, mock_status_string):
+ def test_run(self, mock_progress_string, mock_status_string, mock_sleep,
+ mock_time):
self.run_count = 0
self.is_complete_count = 0
+ mock_sleep.return_value = None
+ # pylint: disable=range-builtin-not-iterating
+ mock_time.side_effect = range(1, 50, 1)
def reset():
self.run_count = 0
@@ -154,7 +162,7 @@ class ExperimentRunnerTest(unittest.TestCase):
def FakeIsComplete():
self.is_complete_count += 1
- if self.is_complete_count < 3:
+ if self.is_complete_count < 6:
return False
else:
return True
@@ -304,8 +312,8 @@ class ExperimentRunnerTest(unittest.TestCase):
self.assertEqual(mock_html_report.call_count, 1)
self.assertEqual(len(mock_emailer.call_args), 2)
self.assertEqual(mock_emailer.call_args[0],
- (['jane.doe@google.com',
- 'john.smith@google.com'], ': image1 vs. image2',
+ (['jane.doe@google.com', 'john.smith@google.com'
+ ], ': image1 vs. image2',
"<pre style='font-size: 13px'>This is a fake text "
'report.\nResults are stored in _results.\n</pre>'))
self.assertTrue(type(mock_emailer.call_args[1]) is dict)