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

Unified Diff: dashboard/dashboard/speed_releasing_test.py

Issue 2657043002: Handles default revision ranges. (Closed)
Patch Set: Fixing minor bug Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: dashboard/dashboard/speed_releasing_test.py
diff --git a/dashboard/dashboard/speed_releasing_test.py b/dashboard/dashboard/speed_releasing_test.py
index d016dba3a4e7e0dc4e085762b4c95ac579d4f27b..9962d777f4814475af5ac2f6490aad89e849eaa6 100644
--- a/dashboard/dashboard/speed_releasing_test.py
+++ b/dashboard/dashboard/speed_releasing_test.py
@@ -15,6 +15,7 @@ from dashboard.models import table_config
from dashboard.models import graph_data
_SAMPLE_BOTS = ['ChromiumPerf/win', 'ChromiumPerf/linux']
+_DOWNSTREAM_BOTS = ['ClankInternal/win', 'ClankInternal/linux']
_SAMPLE_TESTS = ['my_test_suite/my_test', 'my_test_suite/my_other_test']
_SAMPLE_LAYOUT = ('{ "my_test_suite/my_test": ["Foreground", '
'"Pretty Name 1"],"my_test_suite/my_other_test": '
@@ -52,32 +53,33 @@ class SpeedReleasingTest(testing_common.TestCase):
graph_data.Bot(
id='linux', parent=master_key, internal_only=False).put()
- def _AddTableConfigDataStore(self, name, is_internal):
+ def _AddTableConfigDataStore(self, name, is_internal, is_downstream=False):
"""Add sample internal only tableConfig."""
- keys = self._AddTests()
+ keys = self._AddTests(is_downstream)
if is_internal:
self._AddInternalBotsToDataStore()
else:
self._AddPublicBotsToDataStore()
table_config.CreateTableConfig(
- name=name, bots=_SAMPLE_BOTS,
+ name=name, bots=_SAMPLE_BOTS if not is_downstream else _DOWNSTREAM_BOTS,
tests=_SAMPLE_TESTS,
layout=_SAMPLE_LAYOUT,
username='internal@chromium.org')
return keys
- def _AddTests(self):
- testing_common.AddTests(['ChromiumPerf'], ['win', 'linux'], {
+ def _AddTests(self, is_downstream):
+ master = 'ClankInternal' if is_downstream else 'ChromiumPerf'
+ testing_common.AddTests([master], ['win', 'linux'], {
'my_test_suite': {
'my_test': {},
'my_other_test': {},
}
})
keys = [
- utils.TestKey('ChromiumPerf/win/my_test_suite/my_test'),
- utils.TestKey('ChromiumPerf/win/my_test_suite/my_other_test'),
- utils.TestKey('ChromiumPerf/linux/my_test_suite/my_test'),
- utils.TestKey('ChromiumPerf/linux/my_test_suite/my_other_test'),
+ utils.TestKey(master + '/win/my_test_suite/my_test'),
+ utils.TestKey(master + '/win/my_test_suite/my_other_test'),
+ utils.TestKey(master + '/linux/my_test_suite/my_test'),
+ utils.TestKey(master + '/linux/my_test_suite/my_other_test'),
]
for test_key in keys:
test = test_key.get()
@@ -89,6 +91,20 @@ class SpeedReleasingTest(testing_common.TestCase):
for key in keys:
testing_common.AddRows(utils.TestPath(key), [1, 2, 3, 4])
+ def _AddDownstreamRows(self, keys):
+ revisions = [1, 2, 1485025126, 1485099999]
+ for key in keys:
+ testing_common.AddRows(
+ utils.TestPath(key), revisions)
+ for key in keys:
+ for rev in revisions:
+ row_key = utils.GetRowKey(key, rev)
+ row = row_key.get()
+ row.r_commit_pos = str(rev / 10000)
+ row.a_default_rev = 'r_foo'
+ row.r_foo = 'abcdefghijk'
+ row.put()
+
def testGet_ShowPage(self):
response = self.testapp.get('/speed_releasing/')
self.assertIn('speed-releasing-page', response)
@@ -112,7 +128,8 @@ class SpeedReleasingTest(testing_common.TestCase):
self.assertIn('"table_tests": ["my_test_suite/my_test",'
' "my_test_suite/my_other_test"]', response)
self.assertIn('"table_layout"', response)
- self.assertIn('"revisions": [1, 2]', response)
+ self.assertIn('"revisions": [2, 1]', response)
+ self.assertIn('"display_revisions": [2, 1]', response)
self.assertIn('"units": {"my_test_suite/my_test": "timeDurationInMs", '
'"my_test_suite/my_other_test": "timeDurationInMs"',
response)
@@ -144,9 +161,30 @@ class SpeedReleasingTest(testing_common.TestCase):
}, status=500) # 500 means user can't see data.
def testPost_TableWithNoRevParams(self):
- self._AddTableConfigDataStore('BestTable', True)
+ keys = self._AddTableConfigDataStore('BestTable', True)
+ self._AddRows(keys)
+ response = self.testapp.post('/speed_releasing/BestTable')
+ self.assertIn('"revisions": [445288, 4]', response) # 4 is most recent Row.
+ self.assertIn('"display_revisions": [445288, 4]', response)
+
+ def testPost_TableWithARevParamOnly(self):
+ keys = self._AddTableConfigDataStore('BestTable', True)
+ self._AddRows(keys)
+ response = self.testapp.post('/speed_releasing/BestTable?revA=345000')
+ self.assertIn('"revisions": [352221, 345000]', response)
+
+ def testPost_TableWithBRevParamOnly(self):
+ keys = self._AddTableConfigDataStore('BestTable', True)
+ self._AddRows(keys)
+ response = self.testapp.post('/speed_releasing/BestTable?revB=445388')
+ self.assertIn('"revisions": [445388, 4]', response)
+
+ def testPost_TableWithNoRevParamsOnlyDownStream(self):
+ keys = self._AddTableConfigDataStore('BestTable', True, True)
+ self._AddDownstreamRows(keys)
response = self.testapp.post('/speed_releasing/BestTable')
- self.assertIn('Invalid revisions.', response)
+ self.assertIn('"revisions": [1485099999, 1485025126]', response)
+ self.assertIn('"display_revisions": ["148509-abc", "148502-abc"]', response)
def testPost_TableWithTableNameThatDoesntExist(self):
response = self.testapp.post('/speed_releasing/BestTable')
« dashboard/dashboard/speed_releasing.py ('K') | « dashboard/dashboard/speed_releasing.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698