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

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

Issue 2439693003: rebaseline-cl: Don't trigger new try jobs for builders that already have jobs started. (Closed)
Patch Set: Revert latest_try_job_results to only return a list of Builds again (simpler) 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
11 from webkitpy.common.system.logtesting import LoggingTestCase 11 from webkitpy.common.system.logtesting import LoggingTestCase
12 12
13 13
14 class RietveldTest(LoggingTestCase): 14 class RietveldTest(LoggingTestCase):
15 15
16 def mock_web(self): 16 def mock_web(self):
17 return MockWeb(urls={ 17 return MockWeb(urls={
18 'https://codereview.chromium.org/api/11112222': json.dumps({ 18 'https://codereview.chromium.org/api/11112222': json.dumps({
19 'patchsets': [1, 2, 3], 19 'patchsets': [1, 2, 3],
20 }), 20 }),
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': None,
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 'result': 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({
(...skipping 13 matching lines...) Expand all
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_job_results(11112222, ('bar-builder', 'other-bui lder')), 59 rietveld.latest_try_jobs(11112222, ('bar-builder', 'other-builder')) ,
60 {Build('bar-builder', 60): {'builder': 'bar-builder', 'buildnumber': 60, 'result': 0}}) 60 [Build('bar-builder', 60)])
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_job_results(11112222, ('bar-builder ',)), {}) 68 self.assertEqual(rietveld.latest_try_jobs(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_job_results(11113333, ('bar-builder ',)), {}) 73 self.assertEqual(rietveld.latest_try_jobs(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_job_results(11112222, ('bar-builder', 'other-bui lder'), patchset_number=2), 79 rietveld.latest_try_jobs(11112222, ('bar-builder', 'other-builder'), patchset_number=2),
80 {Build('bar-builder', 50): {'builder': 'bar-builder', 'buildnumber': 50, 'result': 0}}) 80 [Build('bar-builder', 50)])
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_job_results(11112222, ('foo', 'bar' )), {}) 84 self.assertEqual(rietveld.latest_try_jobs(11112222, ('foo', 'bar')), [])
85 85
86 def test_changed_files(self): 86 def test_changed_files(self):
87 rietveld = Rietveld(self.mock_web()) 87 rietveld = Rietveld(self.mock_web())
88 self.assertEqual( 88 self.assertEqual(
89 rietveld.changed_files(11112222), 89 rietveld.changed_files(11112222),
90 ['some/path/bar.html', 'some/path/foo.cc']) 90 ['some/path/bar.html', 'some/path/foo.cc'])
91 91
92 def test_changed_files_no_results(self): 92 def test_changed_files_no_results(self):
93 rietveld = Rietveld(self.mock_web()) 93 rietveld = Rietveld(self.mock_web())
94 self.assertIsNone(rietveld.changed_files(11113333)) 94 self.assertIsNone(rietveld.changed_files(11113333))
95 95
96 # Testing protected methods - pylint: disable=protected-access 96 # Testing protected methods - pylint: disable=protected-access
97 97
98 def test_filter_latest_jobs_empty(self): 98 def test_filter_latest_jobs_empty(self):
99 rietveld = Rietveld(self.mock_web()) 99 rietveld = Rietveld(self.mock_web())
100 self.assertEqual(rietveld._filter_latest_builds([]), []) 100 self.assertEqual(rietveld._filter_latest_builds([]), [])
101 101
102 def test_filter_latest_jobs_higher_build_first(self): 102 def test_filter_latest_jobs_higher_build_first(self):
103 rietveld = Rietveld(self.mock_web()) 103 rietveld = Rietveld(self.mock_web())
104 self.assertEqual( 104 self.assertEqual(
105 rietveld._filter_latest_builds([Build('foo', 5), Build('foo', 3), Bu ild('bar', 5)]), 105 rietveld._filter_latest_builds([Build('foo', 5), Build('foo', 3), Bu ild('bar', 5)]),
106 [Build('foo', 5), Build('bar', 5)]) 106 [Build('bar', 5), Build('foo', 5)])
107 107
108 def test_filter_latest_jobs_higher_build_last(self): 108 def test_filter_latest_jobs_higher_build_last(self):
109 rietveld = Rietveld(self.mock_web()) 109 rietveld = Rietveld(self.mock_web())
110 self.assertEqual( 110 self.assertEqual(
111 rietveld._filter_latest_builds([Build('foo', 3), Build('bar', 5), Bu ild('foo', 5)]), 111 rietveld._filter_latest_builds([Build('foo', 3), Build('bar', 5), Bu ild('foo', 5)]),
112 [Build('bar', 5), Build('foo', 5)]) 112 [Build('bar', 5), Build('foo', 5)])
113 113
114 def test_filter_latest_jobs_no_build_number(self): 114 def test_filter_latest_jobs_no_build_number(self):
115 rietveld = Rietveld(self.mock_web()) 115 rietveld = Rietveld(self.mock_web())
116 self.assertEqual( 116 self.assertEqual(
117 rietveld._filter_latest_builds([Build('foo', 3), Build('bar')]), 117 rietveld._filter_latest_builds([Build('foo', 3), Build('bar'), Build ('bar')]),
118 [Build('foo', 3)]) 118 [Build('bar'), Build('foo', 3)])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698