Index: tools/telemetry/telemetry/benchmark_unittest.py |
diff --git a/tools/telemetry/telemetry/benchmark_unittest.py b/tools/telemetry/telemetry/benchmark_unittest.py |
index da1a07192f99b9465e98490699ace69da77c3110..eb8983b2baa6f25f4352c55cb861f708adb262b8 100644 |
--- a/tools/telemetry/telemetry/benchmark_unittest.py |
+++ b/tools/telemetry/telemetry/benchmark_unittest.py |
@@ -14,6 +14,7 @@ from telemetry.user_story import android |
from telemetry.user_story import shared_user_story_state |
from telemetry.user_story import user_story_runner |
from telemetry.user_story import user_story_set |
+from telemetry.web_perf import timeline_based_measurement |
class DummyPageTest(page_test.PageTest): |
@@ -76,3 +77,53 @@ class BenchmarkTest(unittest.TestCase): |
user_story_runner.Run = original_run_fn |
self.assertTrue(was_run[0]) |
+ |
+ def testOverriddenTbmOptionsAndPageTestRaises(self): |
+ class FakeTimelineBasedMeasurementOptions(object): |
+ pass |
+ |
+ class OverrideBothBenchmark(benchmark.Benchmark): |
+ def CreatePageTest(self, _): |
+ return DummyPageTest() |
+ def CreateTimelineBasedMeasurementOptions(self): |
+ return FakeTimelineBasedMeasurementOptions() |
+ |
+ assertion_regex = ( |
+ 'Cannot override both CreatePageTest and ' |
+ 'CreateTimelineBasedMeasurementOptions') |
+ with self.assertRaisesRegexp(AssertionError, assertion_regex): |
+ OverrideBothBenchmark() |
+ |
+ def testBenchmarkMakesTbmTestByDefault(self): |
+ class DefaultTbmBenchmark(benchmark.Benchmark): |
+ pass |
+ |
+ self.assertIsInstance( |
+ DefaultTbmBenchmark().CreatePageTest(options=None), |
+ timeline_based_measurement.TimelineBasedMeasurement) |
+ |
+ def testUnknownTestTypeRaises(self): |
+ class UnknownTestType(object): |
+ pass |
+ class UnknownTestTypeBenchmark(benchmark.Benchmark): |
+ test = UnknownTestType |
+ |
+ type_error_regex = ( |
+ '"UnknownTestType" is not a PageTest or a TimelineBasedMeasurement') |
+ with self.assertRaisesRegexp(TypeError, type_error_regex): |
+ UnknownTestTypeBenchmark().CreatePageTest(options=None) |
+ |
+ def testOverriddenTbmOptionsAndPageTestTestAttributeRaises(self): |
+ class FakeTimelineBasedMeasurementOptions(object): |
+ pass |
+ |
+ class OverrideOptionsOnPageTestBenchmark(benchmark.Benchmark): |
+ test = DummyPageTest |
+ def CreateTimelineBasedMeasurementOptions(self): |
+ return FakeTimelineBasedMeasurementOptions() |
+ |
+ assertion_regex = ( |
+ 'Cannot override CreateTimelineBasedMeasurementOptions ' |
+ 'with a PageTest') |
+ with self.assertRaisesRegexp(AssertionError, assertion_regex): |
+ OverrideOptionsOnPageTestBenchmark().CreatePageTest(options=None) |