Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: dashboard/dashboard/pinpoint/models/quest_generator_test.py

Issue 3002903002: [pinpoint] Refactor Quest Generator. (Closed)
Patch Set: Comments Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « dashboard/dashboard/pinpoint/models/quest_generator.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2017 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import unittest
6
7 from dashboard.pinpoint.models import quest
8 from dashboard.pinpoint.models import quest_generator
9
10
11 _RUN_TEST_ARGUMENTS = [
12 'benchmark_name', '--story-filter', 'story_name',
13 '--pageset-repeat', '10', '--browser', 'release',
14 '-v', '--upload-results', '--output-format', 'chartjson',
15 '--isolated-script-test-output', '${ISOLATED_OUTDIR}/output.json',
16 '--isolated-script-test-chartjson-output',
17 '${ISOLATED_OUTDIR}/chartjson-output.json',
18 ]
19
20
21 class QuestGeneratorTest(unittest.TestCase):
22
23 def testQuestGenerator(self):
24 with self.assertRaises(TypeError):
25 quest_generator.QuestGenerator({})
26
27 request = {
28 'target': 'telemetry_perf_tests',
29 'configuration': 'chromium-rel-mac11-pro',
30 }
31 self.assertIsInstance(
32 quest_generator.QuestGenerator(request),
33 quest_generator.TelemetryQuestGenerator)
34
35 self.assertIsInstance(
36 quest_generator.QuestGenerator({'target': 'net_perftests'}),
37 quest_generator.GTestQuestGenerator)
38
39
40 class GTestQuestGeneratorTest(unittest.TestCase):
41
42 def testQuests(self):
43 generator = quest_generator.GTestQuestGenerator()
44 self.assertEqual(generator.Quests(), ())
45
46 def testAsDict(self):
47 generator = quest_generator.GTestQuestGenerator()
48 self.assertEqual(generator.AsDict(), {})
49
50
51 class TelemetryQuestGeneratorTest(unittest.TestCase):
52
53 def testMissingArguments(self):
54 base_request = {
55 'configuration': 'chromium-rel-mac11-pro',
56 'target': 'telemetry_perf_tests',
57 'dimensions': '{}',
58 'benchmark': 'speedometer',
59 }
60
61 for argument_name in ('configuration', 'target', 'benchmark'):
62 request = dict(base_request)
63 del request[argument_name]
64 with self.assertRaises(TypeError):
65 quest_generator.TelemetryQuestGenerator(request)
66
67 def testInvalidArguments(self):
68 with self.assertRaises(ValueError):
69 quest_generator.TelemetryQuestGenerator({
70 'configuration': 'chromium-rel-mac11-pro',
71 'target': 'telemetry_perf_tests',
72 'dimensions': 'invalid json',
73 'benchmark': 'speedometer',
74 })
75
76 with self.assertRaises(ValueError):
77 quest_generator.TelemetryQuestGenerator({
78 'configuration': 'chromium-rel-mac11-pro',
79 'target': 'telemetry_perf_tests',
80 'dimensions': '{}',
81 'benchmark': 'speedometer',
82 'repeat_count': 'not a number',
83 })
84
85 def testQuests(self):
86 request = {
87 'configuration': 'chromium-rel-mac11-pro',
88 'target': 'telemetry_perf_tests',
89 'dimensions': '{"key": "value"}',
90 'benchmark': 'benchmark_name',
91 'story': 'story_name',
92 'metric': 'metric_name',
93 'repeat_count': '10',
94 }
95 generator = quest_generator.TelemetryQuestGenerator(request)
96
97 expected_quests = [
98 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'),
99 quest.RunTest({'key': 'value'}, _RUN_TEST_ARGUMENTS),
100 quest.ReadChartJsonValue('metric_name', 'story_name'),
101 ]
102 self.assertEqual(generator.Quests(), expected_quests)
103
104 def testAsDict(self):
105 request = {
106 'configuration': 'chromium-rel-mac11-pro',
107 'target': 'telemetry_perf_tests',
108 'dimensions': '{"key": "value"}',
109 'benchmark': 'page_cycler_v2_site_isolation.basic_oopif',
110 'story': 'http://www.fifa.com/',
111 'metric': 'pcv1-cold@@timeToFirstMeaningfulPaint_avg',
112 'repeat_count': '10',
113 }
114 generator = quest_generator.TelemetryQuestGenerator(request)
115
116 expected_dict = {
117 'configuration': 'chromium-rel-mac11-pro',
118 'target': 'telemetry_perf_tests',
119 'dimensions': {'key': 'value'},
120 'browser': 'release',
121 'benchmark': 'page_cycler_v2_site_isolation.basic_oopif',
122 'story': 'http://www.fifa.com/',
123 'metric': 'pcv1-cold@@timeToFirstMeaningfulPaint_avg',
124 'repeat_count': 10,
125 }
126 self.assertEqual(generator.AsDict(), expected_dict)
OLDNEW
« no previous file with comments | « dashboard/dashboard/pinpoint/models/quest_generator.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698