aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_process_buildrequest.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_process_buildrequest.py')
-rw-r--r--lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_process_buildrequest.py346
1 files changed, 0 insertions, 346 deletions
diff --git a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_process_buildrequest.py b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_process_buildrequest.py
deleted file mode 100644
index 632be205..00000000
--- a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/test/unit/test_process_buildrequest.py
+++ /dev/null
@@ -1,346 +0,0 @@
-# This file is part of Buildbot. Buildbot is free software: you can
-# redistribute it and/or modify it under the terms of the GNU General Public
-# License as published by the Free Software Foundation, version 2.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright Buildbot Team Members
-
-from twisted.trial import unittest
-from buildbot.test.fake import fakedb, fakemaster
-from buildbot.process import buildrequest
-
-class FakeSource:
- def __init__(self, mergeable = True):
- self.codebase = ''
- self.mergeable = mergeable
- self.changes = []
-
- def canBeMergedWith(self, other):
- return self.mergeable
-
-class TestBuildRequest(unittest.TestCase):
-
- def test_fromBrdict(self):
- master = fakemaster.make_master()
- master.db = fakedb.FakeDBConnector(self)
- master.db.insertTestData([
- fakedb.Change(changeid=13, branch='trunk', revision='9283',
- repository='svn://...', project='world-domination'),
- fakedb.SourceStampSet(id=234),
- fakedb.SourceStamp(id=234, sourcestampsetid=234, branch='trunk',
- revision='9284', repository='svn://...',
- project='world-domination'),
- fakedb.SourceStampChange(sourcestampid=234, changeid=13),
- fakedb.Buildset(id=539, reason='triggered', sourcestampsetid=234),
- fakedb.BuildsetProperty(buildsetid=539, property_name='x',
- property_value='[1, "X"]'),
- fakedb.BuildsetProperty(buildsetid=539, property_name='y',
- property_value='[2, "Y"]'),
- fakedb.BuildRequest(id=288, buildsetid=539, buildername='bldr',
- priority=13, submitted_at=1200000000),
- ])
- # use getBuildRequest to minimize the risk from changes to the format
- # of the brdict
- d = master.db.buildrequests.getBuildRequest(288)
- d.addCallback(lambda brdict :
- buildrequest.BuildRequest.fromBrdict(master, brdict))
- def check(br):
- # check enough of the source stamp to verify it found the changes
- self.assertEqual(br.source.ssid, 234)
- self.assertEqual([ ch.number for ch in br.source.changes], [13])
-
- self.assertEqual(br.reason, 'triggered')
-
- self.assertEqual(br.properties.getProperty('x'), 1)
- self.assertEqual(br.properties.getProperty('y'), 2)
- self.assertEqual(br.submittedAt, 1200000000)
- self.assertEqual(br.buildername, 'bldr')
- self.assertEqual(br.priority, 13)
- self.assertEqual(br.id, 288)
- self.assertEqual(br.bsid, 539)
- d.addCallback(check)
- return d
-
- def test_fromBrdict_submittedAt_NULL(self):
- master = fakemaster.make_master()
- master.db = fakedb.FakeDBConnector(self)
- master.db.insertTestData([
- fakedb.SourceStampSet(id=234),
- fakedb.SourceStamp(id=234, sourcestampsetid=234, branch='trunk',
- revision='9284', repository='svn://...',
- project='world-domination'),
- fakedb.Buildset(id=539, reason='triggered', sourcestampsetid=234),
- fakedb.BuildRequest(id=288, buildsetid=539, buildername='bldr',
- priority=13, submitted_at=None),
- ])
- # use getBuildRequest to minimize the risk from changes to the format
- # of the brdict
- d = master.db.buildrequests.getBuildRequest(288)
- d.addCallback(lambda brdict :
- buildrequest.BuildRequest.fromBrdict(master, brdict))
- def check(br):
- # remaining fields assumed to be checked in test_fromBrdict
- self.assertEqual(br.submittedAt, None)
- d.addCallback(check)
- return d
-
- def test_fromBrdict_no_sourcestamps(self):
- master = fakemaster.make_master()
- master.db = fakedb.FakeDBConnector(self)
- master.db.insertTestData([
- fakedb.SourceStampSet(id=234),
- # Sourcestampset has no sourcestamps
- fakedb.Buildset(id=539, reason='triggered', sourcestampsetid=234),
- fakedb.BuildRequest(id=288, buildsetid=539, buildername='not important',
- priority=0, submitted_at=None),
- ])
- # use getBuildRequest to minimize the risk from changes to the format
- # of the brdict
- d = master.db.buildrequests.getBuildRequest(288)
- d.addCallback(lambda brdict:
- buildrequest.BuildRequest.fromBrdict(master, brdict))
- return self.assertFailure(d, AssertionError)
-
- def test_fromBrdict_multiple_sourcestamps(self):
- master = fakemaster.make_master()
- master.db = fakedb.FakeDBConnector(self)
- master.db.insertTestData([
- fakedb.SourceStampSet(id=234),
-
- fakedb.Change(changeid=13, branch='trunk', revision='9283',
- repository='svn://a..', codebase='A',
- project='world-domination'),
- fakedb.SourceStamp(id=234, sourcestampsetid=234, branch='trunk',
- revision='9283', repository='svn://a..',
- codebase='A', project='world-domination'),
- fakedb.SourceStampChange(sourcestampid=234, changeid=13),
-
- fakedb.Change(changeid=14, branch='trunk', revision='9284',
- repository='svn://b..', codebase='B',
- project='world-domination'),
- fakedb.SourceStamp(id=235, sourcestampsetid=234, branch='trunk',
- revision='9284', repository='svn://b..',
- codebase='B', project='world-domination'),
- fakedb.SourceStampChange(sourcestampid=235, changeid=14),
-
- fakedb.Buildset(id=539, reason='triggered', sourcestampsetid=234),
- fakedb.BuildsetProperty(buildsetid=539, property_name='x',
- property_value='[1, "X"]'),
- fakedb.BuildsetProperty(buildsetid=539, property_name='y',
- property_value='[2, "Y"]'),
- fakedb.BuildRequest(id=288, buildsetid=539, buildername='bldr',
- priority=13, submitted_at=1200000000),
- ])
- # use getBuildRequest to minimize the risk from changes to the format
- # of the brdict
- d = master.db.buildrequests.getBuildRequest(288)
- d.addCallback(lambda brdict :
- buildrequest.BuildRequest.fromBrdict(master, brdict))
- def check(br):
- # check enough of the source stamp to verify it found the changes
-
- # Test the single-sourcestamp interface
- self.assertEqual(br.source.ssid, 234)
-
- # Test the multiple sourcestamp interface
- self.assertEqual(br.sources['A'].ssid, 234)
- self.assertEqual(br.sources['B'].ssid, 235)
-
- self.assertEqual([ ch.number for ch in br.sources['A'].changes], [13])
- self.assertEqual([ ch.number for ch in br.sources['B'].changes], [14])
-
- self.assertEqual(br.reason, 'triggered')
-
- self.assertEqual(br.properties.getProperty('x'), 1)
- self.assertEqual(br.properties.getProperty('y'), 2)
- self.assertEqual(br.submittedAt, 1200000000)
- self.assertEqual(br.buildername, 'bldr')
- self.assertEqual(br.priority, 13)
- self.assertEqual(br.id, 288)
- self.assertEqual(br.bsid, 539)
- d.addCallback(check)
- return d
-
- def test_mergeSourceStampsWith_common_codebases(self):
- """ This testcase has two buildrequests
- Request Change Codebase Revision Comment
- ----------------------------------------------------------------------
- 288 13 A 9283
- 289 15 A 9284
- 288 14 B 9200
- 289 16 B 9201
- --------------------------------
- After merged in Build:
- Source1 has rev 9284 and contains changes 13 and 15 from repository svn://a
- Source2 has rev 9201 and contains changes 14 and 16 from repository svn://b
- """
- brs=[] # list of buildrequests
- master = fakemaster.make_master()
- master.db = fakedb.FakeDBConnector(self)
- master.db.insertTestData([
- fakedb.SourceStampSet(id=2340),
-
- fakedb.Change(changeid=13, branch='trunk', revision='9283',
- repository='svn://a..', codebase='A',
- project='world-domination'),
- fakedb.SourceStamp(id=234, sourcestampsetid=2340, branch='trunk',
- revision='9283', repository='svn://a..', codebase='A',
- project='world-domination'),
- fakedb.SourceStampChange(sourcestampid=234, changeid=13),
-
- fakedb.Change(changeid=14, branch='trunk', revision='9200',
- repository='svn://b..', codebase='A',
- project='world-domination'),
- fakedb.SourceStamp(id=235, sourcestampsetid=2340, branch='trunk',
- revision='9200', repository='svn://b..', codebase='B',
- project='world-domination'),
- fakedb.SourceStampChange(sourcestampid=235, changeid=14),
-
- fakedb.SourceStampSet(id=2360),
-
- fakedb.Change(changeid=15, branch='trunk', revision='9284',
- repository='svn://a..', codebase='A',
- project='world-domination'),
- fakedb.SourceStamp(id=236, sourcestampsetid=2360, branch='trunk',
- revision='9284', repository='svn://a..', codebase='A',
- project='world-domination'),
- fakedb.SourceStampChange(sourcestampid=236, changeid=15),
-
- fakedb.Change(changeid=16, branch='trunk', revision='9201',
- repository='svn://b..', codebase='B',
- project='world-domination'),
- fakedb.SourceStamp(id=237, sourcestampsetid=2360, branch='trunk',
- revision='9201', repository='svn://b..', codebase='B',
- project='world-domination'),
- fakedb.SourceStampChange(sourcestampid=237, changeid=16),
-
- fakedb.Buildset(id=539, reason='triggered', sourcestampsetid=2340),
- fakedb.BuildRequest(id=288, buildsetid=539, buildername='bldr'),
-
- fakedb.Buildset(id=540, reason='triggered', sourcestampsetid=2360),
- fakedb.BuildRequest(id=289, buildsetid=540, buildername='bldr'),
- ])
- # use getBuildRequest to minimize the risk from changes to the format
- # of the brdict
- d = master.db.buildrequests.getBuildRequest(288)
- d.addCallback(lambda brdict :
- buildrequest.BuildRequest.fromBrdict(master, brdict))
- d.addCallback(lambda br : brs.append(br))
- d.addCallback(lambda _ :
- master.db.buildrequests.getBuildRequest(289))
- d.addCallback(lambda brdict :
- buildrequest.BuildRequest.fromBrdict(master, brdict))
- d.addCallback(lambda br : brs.append(br))
- def check(_):
- sources = brs[0].mergeSourceStampsWith(brs[1:])
-
- source1 = source2 = None
- for source in sources:
- if source.codebase == 'A':
- source1 = source
- if source.codebase == 'B':
- source2 = source
-
- self.assertFalse(source1 == None)
- self.assertEqual(source1.revision,'9284')
-
- self.assertFalse(source2 == None)
- self.assertEqual(source2.revision,'9201')
-
- self.assertEqual([c.number for c in source1.changes], [13,15])
- self.assertEqual([c.number for c in source2.changes], [14,16])
-
- d.addCallback(check)
- return d
-
- def test_canBeMergedWith_different_codebases_raises_error(self):
- """ This testcase has two buildrequests
- Request Change Codebase Revision Comment
- ----------------------------------------------------------------------
- 288 17 C 1800 request 1 has repo not in request 2
- 289 18 D 2100 request 2 has repo not in request 1
- --------------------------------
- Merge cannot be performd and raises error:
- Merging requests requires both requests to have the same codebases
- """
- brs=[] # list of buildrequests
- master = fakemaster.make_master()
- master.db = fakedb.FakeDBConnector(self)
- master.db.insertTestData([
- fakedb.SourceStampSet(id=2340),
-
- fakedb.Change(changeid=17, branch='trunk', revision='1800',
- repository='svn://c..', codebase='C',
- project='world-domination'),
- fakedb.SourceStamp(id=238, sourcestampsetid=2340, branch='trunk',
- revision='1800', repository='svn://c..',
- codebase='C', project='world-domination'),
- fakedb.SourceStampChange(sourcestampid=238, changeid=17),
-
- fakedb.SourceStampSet(id=2360),
-
- fakedb.Change(changeid=18, branch='trunk', revision='2100',
- repository='svn://d..', codebase='D',
- project='world-domination'),
- fakedb.SourceStamp(id=239, sourcestampsetid=2360, branch='trunk',
- revision='2100', repository='svn://d..',
- codebase='D', project='world-domination'),
- fakedb.SourceStampChange(sourcestampid=239, changeid=18),
-
- fakedb.Buildset(id=539, reason='triggered', sourcestampsetid=2340),
- fakedb.BuildRequest(id=288, buildsetid=539, buildername='bldr'),
-
- fakedb.Buildset(id=540, reason='triggered', sourcestampsetid=2360),
- fakedb.BuildRequest(id=289, buildsetid=540, buildername='bldr'),
- ])
- # use getBuildRequest to minimize the risk from changes to the format
- # of the brdict
- d = master.db.buildrequests.getBuildRequest(288)
- d.addCallback(lambda brdict :
- buildrequest.BuildRequest.fromBrdict(master, brdict))
- d.addCallback(lambda br : brs.append(br))
- d.addCallback(lambda _ :
- master.db.buildrequests.getBuildRequest(289))
- d.addCallback(lambda brdict :
- buildrequest.BuildRequest.fromBrdict(master, brdict))
- d.addCallback(lambda br : brs.append(br))
- def check(_):
- self.assertEqual(brs[0].canBeMergedWith(brs[1]), False)
-
- d.addCallback(check)
- return d
-
- def test_build_can_be_merged_with_mergables_same_codebases(self):
- r1 = buildrequest.BuildRequest()
- r1.sources = {"A": FakeSource()}
- r2 = buildrequest.BuildRequest()
- r2.sources = {"A": FakeSource()}
- mergeable = r1.canBeMergedWith(r2)
- self.assertTrue(mergeable, "Both request should be able to merge")
-
- def test_build_can_be_merged_with_non_mergable_same_codebases(self):
- r1 = buildrequest.BuildRequest()
- r1.sources = {"A": FakeSource(mergeable = False)}
- r2 = buildrequest.BuildRequest()
- r2.sources = {"A": FakeSource(mergeable = False)}
- mergeable = r1.canBeMergedWith(r2)
- self.assertFalse(mergeable, "Both request should not be able to merge")
-
- def test_build_can_be_merged_with_non_mergables_different_codebases(self):
- r1 = buildrequest.BuildRequest()
- r1.sources = {"A": FakeSource(mergeable = False)}
- r2 = buildrequest.BuildRequest()
- r2.sources = {"B": FakeSource(mergeable = False)}
- mergeable = r1.canBeMergedWith(r2)
- self.assertFalse(mergeable, "Request containing different codebases " +
- "should never be able to merge")
-
-