aboutsummaryrefslogtreecommitdiff
path: root/crosperf/experiment_runner_unittest.py
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-04-28 20:24:56 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-04-28 20:24:56 +0000
commit656c7c0fa0d9b776c019f5423e01a9a28979d2bd (patch)
tree220a95d346d58fa5090d8033991bcfef2ad03d99 /crosperf/experiment_runner_unittest.py
parent091406baac88deeb2ef9c71d5047bd9daf3915ef (diff)
parentccead650bb8e050400f55dc44b60f989b1f8e117 (diff)
downloadtoolchain-utils-656c7c0fa0d9b776c019f5423e01a9a28979d2bd.tar.gz
Change-Id: I3464301d9b41d48e11dfd361a411d60a1bd5a429
Diffstat (limited to 'crosperf/experiment_runner_unittest.py')
-rwxr-xr-xcrosperf/experiment_runner_unittest.py65
1 files changed, 20 insertions, 45 deletions
diff --git a/crosperf/experiment_runner_unittest.py b/crosperf/experiment_runner_unittest.py
index 2ec11ccd..4809894f 100755
--- a/crosperf/experiment_runner_unittest.py
+++ b/crosperf/experiment_runner_unittest.py
@@ -1,21 +1,18 @@
#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
#
# 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
+import StringIO
import getpass
-import io
import os
-import time
-import unittest
import mock
+import unittest
import experiment_runner
import experiment_status
@@ -108,7 +105,7 @@ class ExperimentRunnerTest(unittest.TestCase):
def make_fake_experiment(self):
test_flag.SetTestMode(True)
- experiment_file = ExperimentFile(io.BytesIO(EXPERIMENT_FILE_1))
+ experiment_file = ExperimentFile(StringIO.StringIO(EXPERIMENT_FILE_1))
experiment = ExperimentFactory().GetExperiment(
experiment_file, working_directory='', log_dir='')
return experiment
@@ -140,18 +137,12 @@ 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, mock_sleep,
- mock_time):
+ def test_run(self, mock_progress_string, mock_status_string):
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
@@ -163,7 +154,7 @@ class ExperimentRunnerTest(unittest.TestCase):
def FakeIsComplete():
self.is_complete_count += 1
- if self.is_complete_count < 6:
+ if self.is_complete_count < 3:
return False
else:
return True
@@ -313,11 +304,11 @@ 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(isinstance(mock_emailer.call_args[1], dict))
+ self.assertTrue(type(mock_emailer.call_args[1]) is dict)
self.assertEqual(len(mock_emailer.call_args[1]), 2)
self.assertTrue('attachments' in mock_emailer.call_args[1].keys())
self.assertEqual(mock_emailer.call_args[1]['msg_type'], 'html')
@@ -349,7 +340,7 @@ class ExperimentRunnerTest(unittest.TestCase):
], ': image1 vs. image2',
"<pre style='font-size: 13px'>This is a fake text "
'report.\nResults are stored in _results.\n</pre>'))
- self.assertTrue(isinstance(mock_emailer.call_args[1], dict))
+ self.assertTrue(type(mock_emailer.call_args[1]) is dict)
self.assertEqual(len(mock_emailer.call_args[1]), 2)
self.assertTrue('attachments' in mock_emailer.call_args[1].keys())
self.assertEqual(mock_emailer.call_args[1]['msg_type'], 'html')
@@ -376,7 +367,7 @@ class ExperimentRunnerTest(unittest.TestCase):
(['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(isinstance(mock_emailer.call_args[1], dict))
+ self.assertTrue(type(mock_emailer.call_args[1]) is dict)
self.assertEqual(len(mock_emailer.call_args[1]), 2)
self.assertTrue('attachments' in mock_emailer.call_args[1].keys())
self.assertEqual(mock_emailer.call_args[1]['msg_type'], 'html')
@@ -407,17 +398,14 @@ class ExperimentRunnerTest(unittest.TestCase):
@mock.patch.object(TextResultsReport, 'FromExperiment')
@mock.patch.object(Result, 'CopyResultsTo')
@mock.patch.object(Result, 'CleanUp')
- @mock.patch.object(Result, 'FormatStringTop5')
- @mock.patch('__builtin__.open', new_callable=mock.mock_open)
- def test_store_results(self, mock_open, mock_top5, mock_cleanup, mock_copy,
- _mock_text_report, mock_report, mock_writefile,
- mock_mkdir, mock_rmdir):
+ def test_store_results(self, mock_cleanup, mock_copy, _mock_text_report,
+ mock_report, mock_writefile, mock_mkdir, mock_rmdir):
self.mock_logger.Reset()
self.exp.results_directory = '/usr/local/crosperf-results'
bench_run = self.exp.benchmark_runs[5]
- bench_path = '/usr/local/crosperf-results/' + ''.join(
- ch for ch in bench_run.name if ch.isalnum())
+ bench_path = '/usr/local/crosperf-results/' + filter(
+ str.isalnum, bench_run.name)
self.assertEqual(len(self.exp.benchmark_runs), 6)
er = experiment_runner.ExperimentRunner(
@@ -437,8 +425,6 @@ class ExperimentRunnerTest(unittest.TestCase):
self.assertEqual(mock_mkdir.call_count, 0)
self.assertEqual(mock_rmdir.call_count, 0)
self.assertEqual(self.mock_logger.LogOutputCount, 0)
- self.assertEqual(mock_open.call_count, 0)
- self.assertEqual(mock_top5.call_count, 0)
# Test 2. _terminated is false; everything works properly.
fake_result = Result(self.mock_logger, self.exp.labels[0], 'average',
@@ -448,9 +434,9 @@ class ExperimentRunnerTest(unittest.TestCase):
er._terminated = False
er._StoreResults(self.exp)
self.assertEqual(mock_cleanup.call_count, 6)
- mock_cleanup.assert_called_with(bench_run.benchmark.rm_chroot_tmp)
+ mock_cleanup.called_with(bench_run.benchmark.rm_chroot_tmp)
self.assertEqual(mock_copy.call_count, 6)
- mock_copy.assert_called_with(bench_path)
+ mock_copy.called_with(bench_path)
self.assertEqual(mock_writefile.call_count, 3)
self.assertEqual(len(mock_writefile.call_args_list), 3)
first_args = mock_writefile.call_args_list[0]
@@ -460,27 +446,16 @@ class ExperimentRunnerTest(unittest.TestCase):
self.assertEqual(second_args[0][0],
'/usr/local/crosperf-results/results.html')
self.assertEqual(mock_mkdir.call_count, 1)
- mock_mkdir.assert_called_with('/usr/local/crosperf-results')
+ mock_mkdir.called_with('/usr/local/crosperf-results')
self.assertEqual(mock_rmdir.call_count, 1)
- mock_rmdir.assert_called_with('/usr/local/crosperf-results')
- self.assertEqual(self.mock_logger.LogOutputCount, 5)
+ mock_rmdir.called_with('/usr/local/crosperf-results')
+ self.assertEqual(self.mock_logger.LogOutputCount, 4)
self.assertEqual(self.mock_logger.output_msgs, [
'Storing experiment file in /usr/local/crosperf-results.',
'Storing results report in /usr/local/crosperf-results.',
'Storing email message body in /usr/local/crosperf-results.',
- 'Storing results of each benchmark run.',
- 'Storing top5 statistics of each benchmark run into'
- ' /usr/local/crosperf-results/topstats.log.',
+ 'Storing results of each benchmark run.'
])
- self.assertEqual(mock_open.call_count, 1)
- # Check write to a topstats.log file.
- mock_open.assert_called_with('/usr/local/crosperf-results/topstats.log',
- 'w')
- mock_open().write.assert_called()
-
- # Check top5 calls with no arguments.
- top5calls = [mock.call()] * 6
- self.assertEqual(mock_top5.call_args_list, top5calls)
if __name__ == '__main__':