| 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')
|
|
|