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

Side by Side Diff: third_party/WebKit/Tools/Scripts/webkitpy/common/net/rietveld_unittest.py

Issue 2406153003: Change Rietveld.latest_try_jobs to return try job result details. (Closed)
Patch Set: Created 4 years, 2 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
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import json 5 import json
6 import urllib2 6 import urllib2
7 7
8 from webkitpy.common.net.rietveld import Rietveld 8 from webkitpy.common.net.rietveld import Rietveld
9 from webkitpy.common.net.buildbot import Build 9 from webkitpy.common.net.buildbot import Build
10 from webkitpy.common.net.web_mock import MockWeb 10 from webkitpy.common.net.web_mock import MockWeb
(...skipping 10 matching lines...) Expand all
21 'https://codereview.chromium.org/api/11112222/2': json.dumps({ 21 'https://codereview.chromium.org/api/11112222/2': json.dumps({
22 'try_job_results': [ 22 'try_job_results': [
23 { 23 {
24 'builder': 'foo-builder', 24 'builder': 'foo-builder',
25 'buildnumber': 10, 25 'buildnumber': 10,
26 'result': -1 26 'result': -1
27 }, 27 },
28 { 28 {
29 'builder': 'bar-builder', 29 'builder': 'bar-builder',
30 'buildnumber': 50, 30 'buildnumber': 50,
31 'results': 0 31 'result': 0
32 }, 32 },
33 ], 33 ],
34 }), 34 }),
35 'https://codereview.chromium.org/api/11112222/3': json.dumps({ 35 'https://codereview.chromium.org/api/11112222/3': json.dumps({
36 'try_job_results': [ 36 'try_job_results': [
37 { 37 {
38 'builder': 'foo-builder', 38 'builder': 'foo-builder',
39 'buildnumber': 20, 39 'buildnumber': 20,
40 'result': 1 40 'result': 1
41 }, 41 },
42 { 42 {
43 'builder': 'bar-builder', 43 'builder': 'bar-builder',
44 'buildnumber': 60, 44 'buildnumber': 60,
45 'result': 0 45 'result': 0
46 }, 46 },
47 ], 47 ],
48 'files': { 48 'files': {
49 'some/path/foo.cc': {'status': 'M'}, 49 'some/path/foo.cc': {'status': 'M'},
50 'some/path/bar.html': {'status': 'M'}, 50 'some/path/bar.html': {'status': 'M'},
51 } 51 }
52 }), 52 }),
53 'https://codereview.chromium.org/api/11113333': 'my non-JSON content s', 53 'https://codereview.chromium.org/api/11113333': 'my non-JSON content s',
54 }) 54 })
55 55
56 def test_latest_try_jobs(self): 56 def test_latest_try_jobs(self):
57 rietveld = Rietveld(self.mock_web()) 57 rietveld = Rietveld(self.mock_web())
58 self.assertEqual( 58 self.assertEqual(
59 rietveld.latest_try_jobs(11112222, ('bar-builder', 'other-builder')) , 59 rietveld.latest_try_job_results(11112222, ('bar-builder', 'other-bui lder')),
60 [Build('bar-builder', 60)]) 60 {Build('bar-builder', 60): {'builder': 'bar-builder', 'buildnumber': 60, 'result': 0}})
61 61
62 def test_latest_try_jobs_http_error(self): 62 def test_latest_try_jobs_http_error(self):
63 def raise_error(_): 63 def raise_error(_):
64 raise urllib2.URLError('Some request error message') 64 raise urllib2.URLError('Some request error message')
65 web = self.mock_web() 65 web = self.mock_web()
66 web.get_binary = raise_error 66 web.get_binary = raise_error
67 rietveld = Rietveld(web) 67 rietveld = Rietveld(web)
68 self.assertEqual(rietveld.latest_try_jobs(11112222, ('bar-builder',)), [ ]) 68 self.assertEqual(rietveld.latest_try_job_results(11112222, ('bar-builder ',)), {})
69 self.assertLog(['ERROR: Request failed to URL: https://codereview.chromi um.org/api/11112222\n']) 69 self.assertLog(['ERROR: Request failed to URL: https://codereview.chromi um.org/api/11112222\n'])
70 70
71 def test_latest_try_jobs_non_json_response(self): 71 def test_latest_try_jobs_non_json_response(self):
72 rietveld = Rietveld(self.mock_web()) 72 rietveld = Rietveld(self.mock_web())
73 self.assertEqual(rietveld.latest_try_jobs(11113333, ('bar-builder',)), [ ]) 73 self.assertEqual(rietveld.latest_try_job_results(11113333, ('bar-builder ',)), {})
74 self.assertLog(['ERROR: Invalid JSON: my non-JSON contents\n']) 74 self.assertLog(['ERROR: Invalid JSON: my non-JSON contents\n'])
75 75
76 def test_latest_try_jobs_with_patchset(self): 76 def test_latest_try_jobs_with_patchset(self):
77 rietveld = Rietveld(self.mock_web()) 77 rietveld = Rietveld(self.mock_web())
78 self.assertEqual( 78 self.assertEqual(
79 rietveld.latest_try_jobs(11112222, ('bar-builder', 'other-builder'), patchset_number=2), 79 rietveld.latest_try_job_results(11112222, ('bar-builder', 'other-bui lder'), patchset_number=2),
80 [Build('bar-builder', 50)]) 80 {Build('bar-builder', 50): {'builder': 'bar-builder', 'buildnumber': 50, 'result': 0}})
81 81
82 def test_latest_try_jobs_no_relevant_builders(self): 82 def test_latest_try_jobs_no_relevant_builders(self):
83 rietveld = Rietveld(self.mock_web()) 83 rietveld = Rietveld(self.mock_web())
84 self.assertEqual(rietveld.latest_try_jobs(11112222, ('foo', 'bar')), []) 84 self.assertEqual(rietveld.latest_try_job_results(11112222, ('foo', 'bar' )), {})
85
86 def test_filter_latest_jobs_empty(self):
87 rietveld = Rietveld(self.mock_web())
88 self.assertEqual(rietveld.filter_latest_jobs([]), [])
89
90 def test_filter_latest_jobs_higher_build_first(self):
91 rietveld = Rietveld(self.mock_web())
92 self.assertEqual(
93 rietveld.filter_latest_jobs([Build('foo', 5), Build('foo', 3), Build ('bar', 5)]),
94 [Build('foo', 5), Build('bar', 5)])
95
96 def test_filter_latest_jobs_higher_build_last(self):
97 rietveld = Rietveld(self.mock_web())
98 self.assertEqual(
99 rietveld.filter_latest_jobs([Build('foo', 3), Build('bar', 5), Build ('foo', 5)]),
100 [Build('bar', 5), Build('foo', 5)])
101
102 def test_filter_latest_jobs_no_build_number(self):
103 rietveld = Rietveld(self.mock_web())
104 self.assertEqual(
105 rietveld.filter_latest_jobs([Build('foo', 3), Build('bar')]),
106 [Build('foo', 3)])
107 85
108 def test_changed_files(self): 86 def test_changed_files(self):
109 rietveld = Rietveld(self.mock_web()) 87 rietveld = Rietveld(self.mock_web())
110 self.assertEqual( 88 self.assertEqual(
111 rietveld.changed_files(11112222), 89 rietveld.changed_files(11112222),
112 ['some/path/bar.html', 'some/path/foo.cc']) 90 ['some/path/bar.html', 'some/path/foo.cc'])
113 91
114 def test_changed_files_no_results(self): 92 def test_changed_files_no_results(self):
115 rietveld = Rietveld(self.mock_web()) 93 rietveld = Rietveld(self.mock_web())
116 self.assertIsNone(rietveld.changed_files(11113333)) 94 self.assertIsNone(rietveld.changed_files(11113333))
95
96 # Testing protected methods - pylint: disable=protected-access
97
98 def test_filter_latest_jobs_empty(self):
99 rietveld = Rietveld(self.mock_web())
100 self.assertEqual(rietveld._filter_latest_builds([]), [])
101
102 def test_filter_latest_jobs_higher_build_first(self):
103 rietveld = Rietveld(self.mock_web())
104 self.assertEqual(
105 rietveld._filter_latest_builds([Build('foo', 5), Build('foo', 3), Bu ild('bar', 5)]),
106 [Build('foo', 5), Build('bar', 5)])
107
108 def test_filter_latest_jobs_higher_build_last(self):
109 rietveld = Rietveld(self.mock_web())
110 self.assertEqual(
111 rietveld._filter_latest_builds([Build('foo', 3), Build('bar', 5), Bu ild('foo', 5)]),
112 [Build('bar', 5), Build('foo', 5)])
113
114 def test_filter_latest_jobs_no_build_number(self):
115 rietveld = Rietveld(self.mock_web())
116 self.assertEqual(
117 rietveld._filter_latest_builds([Build('foo', 3), Build('bar')]),
118 [Build('foo', 3)])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698