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

Side by Side Diff: appengine/findit/waterfall/test/build_util_test.py

Issue 1999653003: [Findit] Bailing out if build data is too old and moving relevant settings to config (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Addressing comments Created 4 years, 7 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 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 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 datetime 5 import datetime
6 6
7 from testing_utils import testing 7 from testing_utils import testing
8 8
9 from model.wf_build import WfBuild 9 from model.wf_build import WfBuild
10 from waterfall import build_util
10 from waterfall import buildbot 11 from waterfall import buildbot
11 from waterfall import build_util 12 from waterfall.test import wf_testcase
12 13
13 14
14 class BuildUtilTest(testing.AppengineTestCase): 15 class BuildUtilTest(wf_testcase.WaterfallTestCase):
15 16
16 def setUp(self): 17 def setUp(self):
17 super(BuildUtilTest, self).setUp() 18 super(BuildUtilTest, self).setUp()
18 19
19 with self.mock_urlfetch() as urlfetch: 20 with self.mock_urlfetch() as urlfetch:
20 self.mocked_urlfetch = urlfetch 21 self.mocked_urlfetch = urlfetch
21 22
22 def _TimeBeforeNowBySeconds(self, seconds): 23 def _TimeBeforeNowBySeconds(self, seconds):
23 return datetime.datetime.utcnow() - datetime.timedelta(0, seconds, 0) 24 return datetime.datetime.utcnow() - datetime.timedelta(0, seconds, 0)
24 25
(...skipping 21 matching lines...) Expand all
46 # Build was completed and data is final. 47 # Build was completed and data is final.
47 build.data = 'dummy' 48 build.data = 'dummy'
48 build.completed = True 49 build.completed = True
49 build.last_crawled_time = self._TimeBeforeNowBySeconds(360) 50 build.last_crawled_time = self._TimeBeforeNowBySeconds(360)
50 self.assertFalse(build_util._BuildDataNeedUpdating(build)) 51 self.assertFalse(build_util._BuildDataNeedUpdating(build))
51 52
52 def _MockUrlfetchWithBuildData( 53 def _MockUrlfetchWithBuildData(
53 self, master_name, builder_name, build_number, 54 self, master_name, builder_name, build_number,
54 build_data=None, archive=False): 55 build_data=None, archive=False):
55 if archive and build_data == 'Test get build data': 56 if archive and build_data == 'Test get build data':
56 build_data = build_data + ' from archive' 57 build_data += ' from archive'
57 archived_build_url = buildbot.CreateArchivedBuildUrl( 58 archived_build_url = buildbot.CreateArchivedBuildUrl(
58 master_name, builder_name, build_number) 59 master_name, builder_name, build_number)
59 self.mocked_urlfetch.register_handler(archived_build_url, build_data) 60 self.mocked_urlfetch.register_handler(archived_build_url, build_data)
60 61
61 if build_data == 'Test get build data': 62 if build_data == 'Test get build data':
62 build_data = build_data + ' from build master' 63 build_data += ' from build master'
63 build_url = buildbot.CreateBuildUrl( 64 build_url = buildbot.CreateBuildUrl(
64 master_name, builder_name, build_number, json_api=True) 65 master_name, builder_name, build_number, json_api=True)
65 self.mocked_urlfetch.register_handler(build_url, build_data) 66 self.mocked_urlfetch.register_handler(build_url, build_data)
66 67
67 def testGetBuildeDataNotDownloadAgain(self): 68 def testGetBuildDataNotDownloadAgain(self):
68 master_name = 'm' 69 master_name = 'm'
69 builder_name = 'b' 70 builder_name = 'b'
70 build_number = 123 71 build_number = 123
71 build = WfBuild.Create(master_name, builder_name, build_number) 72 build = WfBuild.Create(master_name, builder_name, build_number)
72 73
73 build.data = 'dummy' 74 build.data = 'dummy'
74 build.completed = False 75 build.completed = False
75 build.last_crawled_time = self._TimeBeforeNowBySeconds(60) 76 build.last_crawled_time = self._TimeBeforeNowBySeconds(60)
76 build.put() 77 build.put()
77 78
78 build_util.DownloadBuildData( 79 build_util.DownloadBuildData(
79 master_name, builder_name, build_number) 80 master_name, builder_name, build_number)
80 81
81 expected_build_data = 'dummy' 82 expected_build_data = 'dummy'
82 83
83 self.assertEqual(expected_build_data, build.data) 84 self.assertEqual(expected_build_data, build.data)
84 85
85 def testGetBuildeDataFromArchive(self): 86 def testGetBuildDataFromArchive(self):
86 master_name = 'm' 87 master_name = 'm'
87 builder_name = 'b' 88 builder_name = 'b'
88 build_number = 123 89 build_number = 123
89 90
90 build = WfBuild.Create(master_name, builder_name, build_number) 91 build = WfBuild.Create(master_name, builder_name, build_number)
91 build.put() 92 build.put()
92 self._MockUrlfetchWithBuildData(master_name, builder_name, build_number, 93 self._MockUrlfetchWithBuildData(master_name, builder_name, build_number,
93 build_data='Test get build data', 94 build_data='Test get build data',
94 archive=True) 95 archive=True)
95 96
96 build_util.DownloadBuildData( 97 build_util.DownloadBuildData(
97 master_name, builder_name, build_number) 98 master_name, builder_name, build_number)
98 99
99 expected_build_data = 'Test get build data from archive' 100 expected_build_data = 'Test get build data from archive'
100 101
101 self.assertEqual(expected_build_data, build.data) 102 self.assertEqual(expected_build_data, build.data)
102 103
103 def testGetBuildeDataFromBuildMaster(self): 104 def testGetBuildDataFromBuildMaster(self):
104 master_name = 'm' 105 master_name = 'm'
105 builder_name = 'b' 106 builder_name = 'b'
106 build_number = 123 107 build_number = 123
107 self._MockUrlfetchWithBuildData(master_name, builder_name, 123, 108 self._MockUrlfetchWithBuildData(master_name, builder_name, 123,
108 build_data='Test get build data') 109 build_data='Test get build data')
109 110
110 build = build_util.DownloadBuildData( 111 build = build_util.DownloadBuildData(
111 master_name, builder_name, build_number) 112 master_name, builder_name, build_number)
112 113
113 expected_build_data = 'Test get build data from build master' 114 expected_build_data = 'Test get build data from build master'
114 115
115 self.assertEqual(expected_build_data, build.data) 116 self.assertEqual(expected_build_data, build.data)
117
118 def testDownloadBuildDataSourceFromCBE(self):
119 master_name = 'm'
120 builder_name = 'b'
121 build_number = 123
122 build = WfBuild.Create(master_name, builder_name, build_number)
123 build.put()
124
125 self.UpdateUnitTestConfigSettings(
126 'download_build_data_settings', {'use_chrome_build_extract': True})
127 self._MockUrlfetchWithBuildData(master_name, builder_name, build_number,
128 build_data='Test get build data',
129 archive=True)
130
131 build_util.DownloadBuildData(master_name, builder_name, build_number)
132
133 self.assertEqual(build.data_source, build_util.CHROME_BUILD_EXTRACT)
134
135 def testDownloadBuildDataSourceFromBM(self):
136 master_name = 'm'
137 builder_name = 'b'
138 build_number = 123
139 build = WfBuild.Create(master_name, builder_name, build_number)
140 build.put()
141
142 self.UpdateUnitTestConfigSettings(
143 'download_build_data_settings', {'use_chrome_build_extract': False})
144 self._MockUrlfetchWithBuildData(master_name, builder_name, build_number,
145 build_data='Test get build data')
146
147 build_util.DownloadBuildData(master_name, builder_name, build_number)
148
149 self.assertEqual(build.data_source, build_util.BUILDBOT_MASTER)
OLDNEW
« no previous file with comments | « appengine/findit/waterfall/lock_util.py ('k') | appengine/findit/waterfall/test/try_job_util_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698