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

Unified Diff: scripts/slave/unittests/gatekeeper_ng_test.py

Issue 172523005: Keep track of hashes triggered instead of builds. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Whitespace change. Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
« scripts/slave/gatekeeper_ng.py ('K') | « scripts/slave/gatekeeper_ng.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scripts/slave/unittests/gatekeeper_ng_test.py
diff --git a/scripts/slave/unittests/gatekeeper_ng_test.py b/scripts/slave/unittests/gatekeeper_ng_test.py
index bcd9a42f939087ac171d42b38697d69f69135b34..a1b312c19f628fb4c8ee98e56a8ec0dd51f93b08 100755
--- a/scripts/slave/unittests/gatekeeper_ng_test.py
+++ b/scripts/slave/unittests/gatekeeper_ng_test.py
@@ -232,6 +232,7 @@ class GatekeeperTest(unittest.TestCase):
def call_gatekeeper(self):
"""Sets up handlers for all the json and actually calls gatekeeper."""
+ self.url_calls = []
self.handle_build_tree(self.masters)
ret = gatekeeper_ng.main()
if ret != 0:
@@ -357,6 +358,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
iannucci 2014/02/20 03:30:55 nope
ghost stip (do not use) 2014/02/22 10:03:07 Done.
'--email-app-secret-file=%s' % self.email_secret_file])
@@ -370,6 +372,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].results = 3
@@ -395,6 +398,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
@@ -417,6 +421,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[2].results = [2, None]
@@ -432,6 +437,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -452,6 +458,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -472,6 +479,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -492,6 +500,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.add_gatekeeper_section(self.masters[0].url,
@@ -510,6 +519,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.add_gatekeeper_section(self.masters[0].url,
@@ -526,6 +536,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.add_gatekeeper_section(self.masters[0].url,
@@ -543,6 +554,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.add_gatekeeper_section(self.masters[0].url,
@@ -565,6 +577,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.add_gatekeeper_section(self.masters[0].url,
@@ -589,6 +602,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend(['--skip-build-db-update',
'--no-email-app', '--set-status',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--password-file', self.status_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -605,6 +619,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend(['--skip-build-db-update',
'--no-email-app', '--set-status',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--password-file', self.status_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -622,6 +637,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.add_gatekeeper_section(self.masters[0].url,
@@ -643,6 +659,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
subject_template = 'build %(result)s, oh no!'
@@ -701,7 +718,13 @@ class GatekeeperTest(unittest.TestCase):
def testIncrementalScanning(self):
"""Test that builds in the build DB are skipped."""
fd, dbfilename = tempfile.mkstemp()
- build_db = {self.masters[0].url: { 'mybuilder': 1 }}
+ build_db = {'build_db_version': gatekeeper_ng.BUILD_DB_VERSION,
+ 'sections': {},
+ 'masters': {
+ self.masters[0].url: { 'mybuilder': [{'build': 1,
+ 'finished': True}] }
+ }
+ }
os.write(fd, json.dumps(build_db))
os.close(fd)
@@ -730,9 +753,16 @@ class GatekeeperTest(unittest.TestCase):
self.call_gatekeeper()
with open(dbfilename) as f:
new_build_db = json.load(f)
- self.assertEquals(new_build_db, {self.masters[0].url: {'mybuilder': 2}})
+ finished_new_builds = [
+ b for b in new_build_db['masters'][self.masters[0].url]['mybuilder'] if
+ b.get('finished')]
+ self.assertEquals(finished_new_builds,
+ [{'build': 2,
+ 'finished': True,
+ 'triggered': ['2be9f9320c2d26b09e416d615ff047'
+ '86abc74794bd5b669a1bb4228f884ddf50']}])
- #check that gatekeeper indeed sent an email.
+ # Check that gatekeeper indeed sent an email.
self.assertEquals(self.url_calls[-1]['url'], self.mailer_url)
mailer_data = GatekeeperTest.decode_param_json(
self.url_calls[-1]['params'])
@@ -749,6 +779,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -781,6 +812,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].blame = []
@@ -807,6 +839,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -832,6 +865,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
self.add_gatekeeper_section(self.masters[0].url,
@@ -869,6 +903,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -897,6 +932,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].blame = []
@@ -920,6 +956,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -938,6 +975,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -956,6 +994,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -974,6 +1013,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -993,6 +1033,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -1014,6 +1055,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -1047,6 +1089,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -1076,6 +1119,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.add_gatekeeper_section(self.masters[0].url,
@@ -1094,6 +1138,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
# step3 won't fail the build.
@@ -1119,6 +1164,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
# step4 will fail the build.
@@ -1141,6 +1187,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -1175,6 +1222,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([master_url,
'--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -1215,6 +1263,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--set-status', '--password-file', self.status_secret_file
])
@@ -1252,6 +1301,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--no-email-app', '--set-status',
'--password-file', self.status_secret_file])
@@ -1272,6 +1322,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--no-email-app', '--set-status',
'--password-file', self.status_secret_file])
@@ -1289,7 +1340,13 @@ class GatekeeperTest(unittest.TestCase):
def testUpdateBuildDBNotCompletedButFailed(self):
"""Test that partial builds increment the DB if they failed."""
fd, dbfilename = tempfile.mkstemp()
- build_db = {self.masters[0].url: { 'mybuilder': 1 }}
+ build_db = {'build_db_version': gatekeeper_ng.BUILD_DB_VERSION,
+ 'sections': {},
+ 'masters': {
+ self.masters[0].url: { 'mybuilder': [{'build': 1,
+ 'finished': True}] }
+ }
+ }
os.write(fd, json.dumps(build_db))
os.close(fd)
@@ -1316,13 +1373,31 @@ class GatekeeperTest(unittest.TestCase):
urls = self.call_gatekeeper()
with open(dbfilename) as f:
new_build_db = json.load(f)
- self.assertEquals(new_build_db, {self.masters[0].url: {'mybuilder': 2}})
+ finished_new_builds = [
+ b for b in new_build_db['masters'][self.masters[0].url]['mybuilder'] if
+ b.get('finished')]
+ self.assertEquals(finished_new_builds,
+ [{'build': 1, 'finished': True}])
+ unfinished_new_builds = [
+ b for b in new_build_db['masters'][self.masters[0].url]['mybuilder']
+ if not b.get('finished')]
+ self.assertEquals(unfinished_new_builds,
+ [{'build': 2, 'triggered': [
+ '2be9f9320c2d26b09e416d615'
+ 'ff04786abc74794bd5b669a1bb4228f884ddf50']}])
+
self.assertIn(self.status_url, urls)
def testDontUpdateBuildDBIfNotCompleted(self):
- """Test that partial builds don't increment the DB if still running."""
+ """Test that partial builds aren't marked as finished."""
fd, dbfilename = tempfile.mkstemp()
- build_db = {self.masters[0].url: { 'mybuilder': 1 }}
+ build_db = {'build_db_version': gatekeeper_ng.BUILD_DB_VERSION,
+ 'sections': {},
+ 'masters': {
+ self.masters[0].url: { 'mybuilder': [{'build': 1,
+ 'finished': True}] }
+ }
+ }
os.write(fd, json.dumps(build_db))
os.close(fd)
@@ -1348,9 +1423,128 @@ class GatekeeperTest(unittest.TestCase):
urls = self.call_gatekeeper()
with open(dbfilename) as f:
new_build_db = json.load(f)
- self.assertEquals(new_build_db, {self.masters[0].url: {'mybuilder': 1}})
+ finished_new_builds = [
+ b for b in new_build_db['masters'][self.masters[0].url]['mybuilder'] if
+ b.get('finished')]
+ self.assertEquals(finished_new_builds,
+ [{'build': 1, 'finished': True}])
+ unfinished_new_builds = [
+ b for b in new_build_db['masters'][self.masters[0].url]['mybuilder']
+ if not b.get('finished')]
+ self.assertEquals(unfinished_new_builds,
+ [{'build': 2}])
self.assertNotIn(self.status_url, urls)
+ def testTriggeringDoesntTriggerOnSameBuild(self):
+ """Test that a section won't fire twice on a build."""
+ fd, dbfilename = tempfile.mkstemp()
+ build_db = {'build_db_version': gatekeeper_ng.BUILD_DB_VERSION,
+ 'sections': {},
+ 'masters': {
+ self.masters[0].url: {
+ 'mybuilder': [],
+ },
+ },
+ }
+ os.write(fd, json.dumps(build_db))
+ os.close(fd)
+
+ sys.argv.extend([m.url for m in self.masters])
+ sys.argv.extend(['--build-db=%s' % dbfilename,
+ '--json', self.gatekeeper_file,
+ '--no-email-app', '--set-status',
+ '--password-file', self.status_secret_file])
+
+ self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
+ self.masters[0].builders[0].builds[0].finished = False
+ self.add_gatekeeper_section(self.masters[0].url,
+ self.masters[0].builders[0].name,
+ {'closing_steps': ['step1']})
+
+ @contextlib.contextmanager
+ def delfile(filename):
+ yield
+ os.unlink(filename)
+
+ with delfile(dbfilename):
+ urls = self.call_gatekeeper()
+ urls += self.call_gatekeeper()
+ with open(dbfilename) as f:
+ new_build_db = json.load(f)
+ print new_build_db
+ finished_new_builds = [
+ b for b in new_build_db['masters'][self.masters[0].url]['mybuilder'] if
+ b.get('finished')]
+ self.assertEquals(finished_new_builds, [])
+ unfinished_new_builds = [
+ b for b in new_build_db['masters'][self.masters[0].url]['mybuilder']
+ if not b.get('finished')]
+ self.assertEquals(unfinished_new_builds,
+ [{'build': 1,
+ 'triggered': ['2be9f9320c2d26b09e416d615ff047'
+ '86abc74794bd5b669a1bb4228f884ddf50']}])
+ self.assertEquals(1, len([u for u in urls if u == self.status_url]))
+
+ def testTriggeringOneHashDoesntStopAnother(self):
+ """Test that firing on one hash doesn't prevent another hash triggering."""
+ fd, dbfilename = tempfile.mkstemp()
+ build_db = {'build_db_version': gatekeeper_ng.BUILD_DB_VERSION,
+ 'sections': {},
+ 'masters': {
+ self.masters[0].url: { 'mybuilder': [{'build': 1,
+ 'finished': True}] }
+ }
+ }
+ os.write(fd, json.dumps(build_db))
+ os.close(fd)
+
+ sys.argv.extend([m.url for m in self.masters])
+ sys.argv.extend(['--build-db=%s' % dbfilename,
+ '--json', self.gatekeeper_file,
+ '--no-email-app', '--set-status',
+ '--password-file', self.status_secret_file])
+
+ mybuild = self.create_generic_build(2, ['a_second_committer@chromium.org'])
+ mybuild.finished = False
+ self.masters[0].builders[0].builds.append(mybuild)
+ self.masters[0].builders[0].builds[1].steps[1].results = [2, None]
+ self.add_gatekeeper_section(self.masters[0].url,
+ self.masters[0].builders[0].name,
+ {'closing_steps': ['step1']})
+
+ @contextlib.contextmanager
+ def delfile(filename):
+ yield
+ os.unlink(filename)
+
+ with delfile(dbfilename):
+ urls = self.call_gatekeeper()
+ self.add_gatekeeper_section(self.masters[0].url,
+ self.masters[0].builders[0].name,
+ {'closing_steps': ['step2']})
+ self.masters[0].builders[0].builds[1].steps[2].results = [2, None]
+ print 'nerdup', urls
+ urls += self.call_gatekeeper()
+ print 'nerdup kwarg', urls
+ with open(dbfilename) as f:
+ new_build_db = json.load(f)
+ finished_new_builds = [
+ b for b in new_build_db['masters'][self.masters[0].url]['mybuilder'] if
+ b.get('finished')]
+ self.assertEquals(finished_new_builds,
+ [{'build': 1, 'finished': True}])
+ unfinished_new_builds = [
+ b for b in new_build_db['masters'][self.masters[0].url]['mybuilder']
+ if not b.get('finished')]
+ self.assertEquals(unfinished_new_builds,
+ [{'build': 2,
+ 'triggered': ['2be9f9320c2d26b09e416d615ff04786ab'
+ 'c74794bd5b669a1bb4228f884ddf50',
+
+ 'ac0bb2a7245af2aa43c257a3c4eda19dee'
+ 'a4137bc1bce6a8b307047fd6149e32']}])
+ self.assertEquals(2, len([u for u in urls if u == self.status_url]))
+
### JSON config file tests.
def testInheritFromCategory(self):
@@ -1358,6 +1552,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -1379,6 +1574,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[2].results = [2, None]
@@ -1401,6 +1597,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -1423,6 +1620,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -1456,6 +1654,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -1497,6 +1696,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -1521,6 +1721,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -1550,6 +1751,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
@@ -1581,6 +1783,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--filter-domain=squirrels.net,squirrels.com'])
@@ -1597,6 +1800,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend([m.url for m in self.masters])
sys.argv.extend(['--skip-build-db-update',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--email-app-secret-file=%s' % self.email_secret_file,
'--disable-domain-filter',
'--filter-domain=squirrels.net,squirrels.com'])
@@ -1630,6 +1834,7 @@ class GatekeeperTest(unittest.TestCase):
sys.argv.extend(['--skip-build-db-update',
'--no-email-app', '--set-status',
'--json', self.gatekeeper_file,
+ '--process-finished-builds-on-new-builder',
'--password-file', self.status_secret_file])
self.masters[0].builders[0].builds[0].steps[1].results = [2, None]
« scripts/slave/gatekeeper_ng.py ('K') | « scripts/slave/gatekeeper_ng.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698