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

Unified Diff: scripts/slave/unittests/runtest_test.py

Issue 545803002: Update buildbots to parse new telemetry JSON format. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Added unit tests and removed debugging code Created 6 years, 3 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: scripts/slave/unittests/runtest_test.py
diff --git a/scripts/slave/unittests/runtest_test.py b/scripts/slave/unittests/runtest_test.py
index b02fab2f16427e9c57837e56873547eed7e0c34a..b8895d3751dbc033f0c71820fd6240a771e19f26 100755
--- a/scripts/slave/unittests/runtest_test.py
+++ b/scripts/slave/unittests/runtest_test.py
@@ -133,13 +133,21 @@ class SendResultsToDashboardTest(unittest.TestCase):
# a call to _SendResultsDashboard is made, the data used below is arbitrary.
fake_charts_data = {'chart': {'traces': {'x': [1, 0]}, 'rev': 1000}}
fake_points_data = [{'test': 'master/bot/chart/x', 'revision': 1000}]
- fake_results_tracker = object()
+ fake_results_tracker = mock.Mock()
+ fake_results_tracker.IsChartJson = mock.MagicMock(return_value=False)
GetDataFromLogProcessor.return_value = fake_charts_data
MakeListOfPoints.return_value = fake_points_data
runtest._SendResultsToDashboard(
- fake_results_tracker, 'linux', 'sunspider', 'http://x.com', 'builddir',
- 'my.master', 'Builder', 123, 'columns_file', extra_columns={})
+ fake_results_tracker, {
+ 'system': 'linux',
+ 'test': 'sunspider',
+ 'url': 'http://x.com',
+ 'build_dir': 'builddir',
+ 'mastername': 'my.master',
+ 'buildername': 'Builder',
+ 'buildnumber': 123,
+ 'supplemental_columns': {}})
# First a function is called to get data from the log processor.
GetDataFromLogProcessor.assert_called_with(fake_results_tracker)
@@ -152,6 +160,46 @@ class SendResultsToDashboardTest(unittest.TestCase):
SendResults.assert_called_with(
fake_points_data, 'http://x.com', 'builddir')
+ @mock.patch('slave.results_dashboard.MakeDashboardJsonV1')
+ @mock.patch('slave.results_dashboard.SendResults')
+ def test_SendResultsToDashboard_Telemetry(
+ self, SendResults, MakeDashboardJsonV1):
+ """Tests that the right methods get called in _SendResultsToDashboard."""
+ # Since this method just tests that certain methods get called when
+ # a call to _SendResultsDashboard is made, the data used below is arbitrary.
+ fake_json_data = {'chart': {'traces': {'x': [1, 0]}, 'rev': 1000}}
+ fake_ref_data = {'test': 'master/bot/chart/x', 'revision': 1000}
+ fake_results_tracker = mock.Mock()
+ fake_results_tracker.IsChartJson = mock.MagicMock(return_value=True)
+ fake_results_tracker.ChartJson = mock.MagicMock(return_value=fake_json_data)
+ fake_results_tracker.RefJson = mock.MagicMock(return_value=fake_ref_data)
+ fake_results_tracker.Cleanup = mock.MagicMock()
+ MakeDashboardJsonV1.return_value = {'doesnt': 'matter'}
+
+ runtest._SendResultsToDashboard(
+ fake_results_tracker, {
+ 'system': 'linux',
+ 'test': 'sunspider',
+ 'url': 'http://x.com',
+ 'build_dir': 'builddir',
+ 'mastername': 'my.master',
+ 'buildername': 'Builder',
+ 'buildnumber': 123,
+ 'revisions': {'rev': 343},
+ 'supplemental_columns': {}})
+
+ # Then the data is re-formatted to a format that the dashboard accepts.
+ MakeDashboardJsonV1.assert_has_calls([
+ mock.call(fake_json_data, {'rev': 343}, 'linux',
+ 'my.master', 'Builder', 123, {}, False),
+ mock.call(fake_ref_data, {'rev': 343}, 'linux',
+ 'my.master', 'Builder', 123, {}, True)])
+
+ # Then a function is called to send the data (and any cached data).
+ SendResults.assert_has_calls([
+ mock.call({'doesnt': 'matter'}, 'http://x.com', 'builddir'),
+ mock.call({'doesnt': 'matter'}, 'http://x.com', 'builddir')])
+
if __name__ == '__main__':
unittest.main()

Powered by Google App Engine
This is Rietveld 408576698