From 7057cf67ba1dbdd4387f53e5fe47b43c955b1a53 Mon Sep 17 00:00:00 2001 From: Caroline Tice Date: Thu, 10 Dec 2015 12:09:40 -0800 Subject: Crosperf: Fix many broken unittests. Apparently people have been making changes and not running the unittests; many of the unittests were suffering from bit-rot. This CL fixes most of the broken unittests (there are still 3 large ones being worked on -- that will be in another CL). BUG=chromium:567883 TEST=Verified that these unittests work now. Change-Id: I0252a276a035894e70e04c61339cdba148c9bbfd Reviewed-on: https://chrome-internal-review.googlesource.com/241513 Commit-Ready: Luis Lozano Tested-by: Luis Lozano Reviewed-by: Luis Lozano --- crosperf/experiment_runner_unittest.py | 74 +++++++++++++++++++++------------- 1 file changed, 47 insertions(+), 27 deletions(-) (limited to 'crosperf/experiment_runner_unittest.py') diff --git a/crosperf/experiment_runner_unittest.py b/crosperf/experiment_runner_unittest.py index 0e949eb0..46f50934 100755 --- a/crosperf/experiment_runner_unittest.py +++ b/crosperf/experiment_runner_unittest.py @@ -13,16 +13,17 @@ import experiment_runner import experiment_status import machine_manager import config +import test_flag from experiment_file import ExperimentFile from experiment_factory import ExperimentFactory from results_report import TextResultsReport from results_report import HTMLResultsReport from results_cache import Result -from utils import logger -from utils import command_executer -from utils.email_sender import EmailSender -from utils.file_utils import FileUtils +from cros_utils import logger +from cros_utils import command_executer +from cros_utils.email_sender import EmailSender +from cros_utils.file_utils import FileUtils EXPERIMENT_FILE_1 = """ board: parrot @@ -91,6 +92,7 @@ class ExperimentRunnerTest(unittest.TestCase): mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter) def make_fake_experiment(self): + test_flag.SetTestMode(True) experiment_file = ExperimentFile(StringIO.StringIO(EXPERIMENT_FILE_1)) experiment = ExperimentFactory().GetExperiment(experiment_file, working_directory="", @@ -105,14 +107,18 @@ class ExperimentRunnerTest(unittest.TestCase): def test_init(self): - er = experiment_runner.ExperimentRunner(self.exp, self.mock_logger, - self.mock_cmd_exec) + er = experiment_runner.ExperimentRunner(self.exp, json_report=False, + using_schedv2=False, + log=self.mock_logger, + cmd_exec=self.mock_cmd_exec) self.assertFalse (er._terminated) self.assertEqual (er.STATUS_TIME_DELAY, 10) self.exp.log_level = "verbose" - er = experiment_runner.ExperimentRunner(self.exp, self.mock_logger, - self.mock_cmd_exec) + er = experiment_runner.ExperimentRunner(self.exp, json_report=False, + using_schedv2=False, + log=self.mock_logger, + cmd_exec=self.mock_cmd_exec) self.assertEqual (er.STATUS_TIME_DELAY, 30) @@ -145,8 +151,10 @@ class ExperimentRunnerTest(unittest.TestCase): # Test 1: log_level == "quiet" self.exp.log_level = "quiet" - er = experiment_runner.ExperimentRunner(self.exp, self.mock_logger, - self.mock_cmd_exec) + er = experiment_runner.ExperimentRunner(self.exp, json_report=False, + using_schedv2=False, + log = self.mock_logger, + cmd_exec =self.mock_cmd_exec) er.STATUS_TIME_DELAY = 2 mock_status_string.return_value = "Fake status string" er._Run(self.exp) @@ -168,8 +176,10 @@ class ExperimentRunnerTest(unittest.TestCase): reset() self.exp.log_level = "average" mock_status_string.call_count = 0 - er = experiment_runner.ExperimentRunner(self.exp, self.mock_logger, - self.mock_cmd_exec) + er = experiment_runner.ExperimentRunner(self.exp, json_report=False, + using_schedv2=False, + log=self.mock_logger, + cmd_exec=self.mock_cmd_exec) er.STATUS_TIME_DELAY = 2 mock_status_string.return_value = "Fake status string" er._Run(self.exp) @@ -192,8 +202,10 @@ class ExperimentRunnerTest(unittest.TestCase): reset() self.exp.log_level = "verbose" mock_status_string.call_count = 0 - er = experiment_runner.ExperimentRunner(self.exp, self.mock_logger, - self.mock_cmd_exec) + er = experiment_runner.ExperimentRunner(self.exp, json_report=False, + using_schedv2=False, + log=self.mock_logger, + cmd_exec=self.mock_cmd_exec) er.STATUS_TIME_DELAY = 2 mock_status_string.return_value = "Fake status string" mock_progress_string.return_value = "Fake progress string" @@ -220,8 +232,10 @@ class ExperimentRunnerTest(unittest.TestCase): def test_print_table(self, mock_report): self.mock_logger.Reset() mock_report.return_value = "This is a fake experiment report." - er = experiment_runner.ExperimentRunner(self.exp, self.mock_logger, - self.mock_cmd_exec) + er = experiment_runner.ExperimentRunner(self.exp, json_report=False, + using_schedv2=False, + log=self.mock_logger, + cmd_exec=self.mock_cmd_exec) er._PrintTable(self.exp) self.assertEqual(mock_report.call_count, 1) self.assertEqual(self.mock_logger.output_msgs, @@ -243,8 +257,10 @@ class ExperimentRunnerTest(unittest.TestCase): self.mock_logger.Reset() config.AddConfig("no_email", True) self.exp.email_to = ["jane.doe@google.com"] - er = experiment_runner.ExperimentRunner(self.exp, self.mock_logger, - self.mock_cmd_exec) + er = experiment_runner.ExperimentRunner(self.exp, json_report=False, + using_schedv2=False, + log=self.mock_logger, + cmd_exec=self.mock_cmd_exec) # Test 1. Config:no_email; exp.email_to set ==> no email sent er._Email(self.exp) self.assertEqual(mock_getuser.call_count, 0) @@ -356,10 +372,11 @@ class ExperimentRunnerTest(unittest.TestCase): @mock.patch.object(FileUtils, 'MkDirP') @mock.patch.object(FileUtils, 'WriteFile') @mock.patch.object(HTMLResultsReport, 'GetReport') + @mock.patch.object(TextResultsReport, 'GetReport') @mock.patch.object(Result, 'CopyResultsTo') @mock.patch.object(Result, 'CleanUp') - def test_store_results(self, mock_cleanup, mock_copy, 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' @@ -368,8 +385,10 @@ class ExperimentRunnerTest(unittest.TestCase): bench_run.name) self.assertEqual (len(self.exp.benchmark_runs), 6) - er = experiment_runner.ExperimentRunner(self.exp, self.mock_logger, - self.mock_cmd_exec) + er = experiment_runner.ExperimentRunner(self.exp, json_report=False, + using_schedv2=False, + log=self.mock_logger, + cmd_exec=self.mock_cmd_exec) # Test 1. Make sure nothing is done if _terminated is true. er._terminated = True @@ -383,7 +402,8 @@ class ExperimentRunnerTest(unittest.TestCase): self.assertEqual(self.mock_logger.LogOutputCount, 0) # Test 2. _terminated is false; everything works properly. - fake_result = Result(self.mock_logger, self.exp.labels[0], "average") + fake_result = Result(self.mock_logger, self.exp.labels[0], "average", + "daisy1") for r in self.exp.benchmark_runs: r.result = fake_result er._terminated = False @@ -406,10 +426,10 @@ class ExperimentRunnerTest(unittest.TestCase): 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 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.']) -- cgit v1.2.3