Index: telemetry/telemetry/internal/story_runner_unittest.py |
diff --git a/telemetry/telemetry/internal/story_runner_unittest.py b/telemetry/telemetry/internal/story_runner_unittest.py |
index 44523ba48abb358485fab1cc44991aecbd2abc5b..bc365cdece6c0ee37f5e660d13b2587543668a7f 100644 |
--- a/telemetry/telemetry/internal/story_runner_unittest.py |
+++ b/telemetry/telemetry/internal/story_runner_unittest.py |
@@ -1036,3 +1036,32 @@ class StoryRunnerTest(unittest.TestCase): |
mock.call.state.DidRunStory(root_mock.results), |
mock.call.test.DidRunStory(root_mock.state.platform) |
]) |
+ |
+ def testRunBenchmarkTimeDuration(self): |
nednguyen
2017/03/17 20:49:32
Can you only mock time and not other story_runner.
nednguyen
2017/03/23 21:29:20
Ping
martiniss
2017/03/23 23:22:21
Done.
|
+ benchmark_mock = mock.Mock() |
+ opts = mock.MagicMock() |
+ opts.__class__.__name__ = '_FakeBrowserFinderOptions' |
+ opts.upload_results = False |
+ |
+ with mock.patch('telemetry.internal.story_runner.Run'): |
+ create_mock = mock.Mock() |
+ create_mock.failures = [] |
+ create_mock.AddSummaryValue = add_value = mock.Mock() |
+ |
+ c_mock = mock.MagicMock() |
+ c_mock.__enter__ = mock.Mock(return_value=create_mock) |
+ wrapper = mock.MagicMock(return_value=c_mock) |
+ with mock.patch( |
+ 'telemetry.internal.story_runner.results_options.CreateResults', |
+ new=wrapper): |
+ |
+ res = story_runner.RunBenchmark(benchmark_mock, opts) |
+ self.assertEqual(res, 0) |
+ |
+ self.assertEquals(len(add_value.call_args_list), 1) |
+ self.assertEquals(len(add_value.call_args_list[0][0]), 1) |
+ # First call -> index into the call object -> first item in call tuple |
+ arg = add_value.call_args_list[0][0][0] |
+ self.assertTrue(isinstance(arg, scalar.ScalarValue)) |
+ self.assertEqual(arg.name, 'BenchmarkDuration') |
+ |