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

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

Issue 2069863002: Add a webkit-patch command which gets a list of relevant try jobs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 6 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
(Empty)
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
3 # found in the LICENSE file.
4
5 import json
6 import logging
7 import unittest
8 import urllib2
9
10 from webkitpy.common.net.rietveld import latest_try_jobs, TryJob
11 from webkitpy.common.net.web_mock import MockWeb
12 from webkitpy.common.system.outputcapture import OutputCapture
13
14
15 _log = logging.getLogger(__name__)
16
17
18 class RietveldTest(unittest.TestCase):
19
20 def setUp(self):
21 self.web = MockWeb(urls={
22 'https://codereview.chromium.org/api/11112222': json.dumps({
23 'patchsets': [1, 2, 3],
24 }),
25 'https://codereview.chromium.org/api/11112222/2': json.dumps({
26 'try_job_results': [
27 {
28 'builder': 'some builder',
29 'master': 'some master',
30 'buildnumber': 10,
31 },
32 {
33 'builder': 'my builder',
34 'master': 'my master',
35 'buildnumber': 50,
36 },
37 ],
38 }),
39 'https://codereview.chromium.org/api/11112222/3': json.dumps({
40 'try_job_results': [
41 {
42 'builder': 'some builder',
43 'master': 'some master',
44 'buildnumber': 20,
45 },
46 {
47 'builder': 'my builder',
48 'master': 'my master',
49 'buildnumber': 60,
50 },
51 ],
52 }),
53 'https://codereview.chromium.org/api/11113333': 'my non-json content s',
54 })
55
56 def test_latest_try_jobs(self):
57 self.assertEqual(
58 latest_try_jobs(11112222, ('my builder', 'my other builder'), self.w eb),
59 [TryJob('my builder', 'my master', 60)])
60
61 def test_latest_try_jobs_http_error(self):
62 def raise_error(_):
63 raise urllib2.URLError('Some request error message')
64 self.web.get_binary = raise_error
65 oc = OutputCapture()
66 try:
67 oc.capture_output()
68 self.assertEqual(latest_try_jobs(11112222, ('my builder',), self.web ), [])
69 finally:
70 _, _, logs = oc.restore_output()
71 self.assertEqual(logs, 'Request failed to URL: https://codereview.chromi um.org/api/11112222\n')
72
73 def test_latest_try_jobs_non_json_response(self):
74 oc = OutputCapture()
75 try:
76 oc.capture_output()
77 self.assertEqual(latest_try_jobs(11113333, ('my builder',), self.web ), [])
78 finally:
79 _, _, logs = oc.restore_output()
80 self.assertEqual(logs, 'Invalid JSON: my non-json contents\n')
81
82 def test_latest_try_jobs_with_patchset(self):
83 self.assertEqual(
84 latest_try_jobs(11112222, ('my builder', 'my other builder'), self.w eb, patchset_number=2),
85 [TryJob('my builder', 'my master', 50)])
86
87 def test_latest_try_jobs_no_relevant_builders(self):
88 self.assertEqual(latest_try_jobs(11112222, ('foo', 'bar'), self.web), [] )
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698