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

Side by Side Diff: scripts/master/unittests/try_job_rietveld_test.py

Issue 305423002: Limited number of buildsets that can be used to initialize RietveldPollerWithCache's cache (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Correct comment Created 6 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 | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """try_job_rietveld.py testcases.""" 6 """try_job_rietveld.py testcases."""
7 7
8 import test_env 8 import test_env
9 from common import find_depot_tools 9 from common import find_depot_tools
10 10
(...skipping 19 matching lines...) Expand all
30 [{'timestamp': datetime.datetime.utcnow(), 'key': 'test_key_1'}], 30 [{'timestamp': datetime.datetime.utcnow(), 'key': 'test_key_1'}],
31 [{'timestamp': (datetime.datetime.utcnow() - 31 [{'timestamp': (datetime.datetime.utcnow() -
32 datetime.timedelta(hours=5, minutes=59)), 32 datetime.timedelta(hours=5, minutes=59)),
33 'key': 'test_key_2'}, 33 'key': 'test_key_2'},
34 {'timestamp': (datetime.datetime.utcnow() - 34 {'timestamp': (datetime.datetime.utcnow() -
35 datetime.timedelta(hours=6, minutes=1)), 35 datetime.timedelta(hours=6, minutes=1)),
36 'key': 'test_key_3'}] 36 'key': 'test_key_3'}]
37 ] 37 ]
38 38
39 39
40 class MockBuildRequestsDB(object):
41
42 def __init__(self):
43 self._build_requests = []
44
45 def addBuildRequest(self, build_request):
46 self._build_requests.append(build_request)
47
48 def getBuildRequests(self):
49 return self._build_requests
50
51
52 class MockBuildSetsDB(object): 40 class MockBuildSetsDB(object):
53 41
54 def __init__(self): 42 def __init__(self):
55 self._buildset_props = {} 43 self._buildset_props = {}
56 44
57 def addBuildSetProperties(self, bsid, buildset_props): 45 def addBuildSetProperties(self, bsid, buildset_props):
58 self._buildset_props[bsid] = buildset_props 46 self._buildset_props[bsid] = buildset_props
59 47
60 def getBuildsetProperties(self, bsid): 48 def getBuildsetProperties(self, bsid):
61 return self._buildset_props[bsid] 49 return self._buildset_props[bsid]
62 50
51 def getRecentBuildsets(self, count):
52 return [{'bsid': bsid} for bsid in self._buildset_props.keys()][:count]
53
63 54
64 class MockDBCollection(object): 55 class MockDBCollection(object):
65 56
66 buildrequests = None
67 buildsets = None 57 buildsets = None
68 58
69 def __init__(self): 59 def __init__(self):
70 self.buildrequests = MockBuildRequestsDB()
71 self.buildsets = MockBuildSetsDB() 60 self.buildsets = MockBuildSetsDB()
72 61
73 62
74 class MockMaster(object): 63 class MockMaster(object):
75 64
76 db = None 65 db = None
77 66
78 def __init__(self): 67 def __init__(self):
79 self.db = MockDBCollection() 68 self.db = MockDBCollection()
80 69
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 poller = try_job_rietveld._RietveldPollerWithCache(TEST_BASE_URL, 60) 146 poller = try_job_rietveld._RietveldPollerWithCache(TEST_BASE_URL, 60)
158 poller.master = self._mockMaster 147 poller.master = self._mockMaster
159 poller.setServiceParent(self._mockTJR) 148 poller.setServiceParent(self._mockTJR)
160 poller.poll() 149 poller.poll()
161 self._mockTJR.clear() 150 self._mockTJR.clear()
162 poller.poll() 151 poller.poll()
163 self.assertEquals(len(self._mockTJR.submitted_jobs), 0) 152 self.assertEquals(len(self._mockTJR.submitted_jobs), 0)
164 153
165 def testDoesNotResubmitJobsAlreadyOnMaster(self): 154 def testDoesNotResubmitJobsAlreadyOnMaster(self):
166 poller = try_job_rietveld._RietveldPollerWithCache(TEST_BASE_URL, 60) 155 poller = try_job_rietveld._RietveldPollerWithCache(TEST_BASE_URL, 60)
167 self._mockMaster.db.buildrequests.addBuildRequest({'buildsetid': 42})
168 self._mockMaster.db.buildsets.addBuildSetProperties( 156 self._mockMaster.db.buildsets.addBuildSetProperties(
169 42, {'try_job_key': ('test_key_1', 'Try bot')}) 157 42, {'try_job_key': ('test_key_1', 'Try bot')})
170 poller.master = self._mockMaster 158 poller.master = self._mockMaster
171 poller.setServiceParent(self._mockTJR) 159 poller.setServiceParent(self._mockTJR)
172 poller.poll() 160 poller.poll()
173 self.assertEquals(len(self._mockTJR.submitted_jobs), 1) 161 self.assertEquals(len(self._mockTJR.submitted_jobs), 1)
174 self.assertEquals(self._mockTJR.submitted_jobs[0]['key'], 'test_key_2') 162 self.assertEquals(self._mockTJR.submitted_jobs[0]['key'], 'test_key_2')
175 163
164 def testShouldLimitNumberOfBuildsetsUsedForInit(self):
165 self.mock(try_job_rietveld, 'MAX_RECENT_BUILDSETS_TO_INIT_CACHE', 1)
166 poller = try_job_rietveld._RietveldPollerWithCache(TEST_BASE_URL, 60)
167 self._mockMaster.db.buildsets.addBuildSetProperties(
168 24, {'try_job_key': ('test_key_2', 'Try bot')})
169 self._mockMaster.db.buildsets.addBuildSetProperties(
170 42, {'try_job_key': ('test_key_1', 'Try bot')})
171 poller.master = self._mockMaster
172 poller.setServiceParent(self._mockTJR)
173 poller.poll()
174 self.assertEquals(len(self._mockTJR.submitted_jobs), 1)
175 self.assertEquals(self._mockTJR.submitted_jobs[0]['key'], 'test_key_1')
176
176 177
177 if __name__ == '__main__': 178 if __name__ == '__main__':
178 unittest.main() 179 unittest.main()
OLDNEW
« scripts/master/try_job_rietveld.py ('K') | « scripts/master/try_job_rietveld.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698