| Index: third_party/buildbot_7_12/buildbot/test/test_buildreq.py
|
| diff --git a/third_party/buildbot_7_12/buildbot/test/test_buildreq.py b/third_party/buildbot_7_12/buildbot/test/test_buildreq.py
|
| deleted file mode 100644
|
| index 6f7f3a92b90389699efbef54d073ba36a1e139bf..0000000000000000000000000000000000000000
|
| --- a/third_party/buildbot_7_12/buildbot/test/test_buildreq.py
|
| +++ /dev/null
|
| @@ -1,182 +0,0 @@
|
| -# -*- test-case-name: buildbot.test.test_buildreq -*-
|
| -
|
| -from twisted.trial import unittest
|
| -
|
| -from buildbot import buildset, interfaces, sourcestamp
|
| -from buildbot.process import base
|
| -from buildbot.status import builder
|
| -from buildbot.changes.changes import Change
|
| -
|
| -class Request(unittest.TestCase):
|
| - def testMerge(self):
|
| - R = base.BuildRequest
|
| - S = sourcestamp.SourceStamp
|
| - N = 'test_builder'
|
| - b1 = R("why", S("branch1", None, None, None), N)
|
| - b1r1 = R("why2", S("branch1", "rev1", None, None), N)
|
| - b1r1a = R("why not", S("branch1", "rev1", None, None), N)
|
| - b1r2 = R("why3", S("branch1", "rev2", None, None), N)
|
| - b2r2 = R("why4", S("branch2", "rev2", None, None), N)
|
| - b1r1p1 = R("why5", S("branch1", "rev1", (3, "diff"), None), N)
|
| - c1 = Change("alice", [], "changed stuff", branch="branch1")
|
| - c2 = Change("alice", [], "changed stuff", branch="branch1")
|
| - c3 = Change("alice", [], "changed stuff", branch="branch1")
|
| - c4 = Change("alice", [], "changed stuff", branch="branch1")
|
| - c5 = Change("alice", [], "changed stuff", branch="branch1")
|
| - c6 = Change("alice", [], "changed stuff", branch="branch1")
|
| - b1c1 = R("changes", S("branch1", None, None, [c1,c2,c3]), N)
|
| - b1c2 = R("changes", S("branch1", None, None, [c4,c5,c6]), N)
|
| -
|
| - self.failUnless(b1.canBeMergedWith(b1))
|
| - self.failIf(b1.canBeMergedWith(b1r1))
|
| - self.failIf(b1.canBeMergedWith(b2r2))
|
| - self.failIf(b1.canBeMergedWith(b1r1p1))
|
| - self.failIf(b1.canBeMergedWith(b1c1))
|
| -
|
| - self.failIf(b1r1.canBeMergedWith(b1))
|
| - self.failUnless(b1r1.canBeMergedWith(b1r1))
|
| - self.failIf(b1r1.canBeMergedWith(b2r2))
|
| - self.failIf(b1r1.canBeMergedWith(b1r1p1))
|
| - self.failIf(b1r1.canBeMergedWith(b1c1))
|
| -
|
| - self.failIf(b1r2.canBeMergedWith(b1))
|
| - self.failIf(b1r2.canBeMergedWith(b1r1))
|
| - self.failUnless(b1r2.canBeMergedWith(b1r2))
|
| - self.failIf(b1r2.canBeMergedWith(b2r2))
|
| - self.failIf(b1r2.canBeMergedWith(b1r1p1))
|
| -
|
| - self.failIf(b1r1p1.canBeMergedWith(b1))
|
| - self.failIf(b1r1p1.canBeMergedWith(b1r1))
|
| - self.failIf(b1r1p1.canBeMergedWith(b1r2))
|
| - self.failIf(b1r1p1.canBeMergedWith(b2r2))
|
| - self.failIf(b1r1p1.canBeMergedWith(b1c1))
|
| -
|
| - self.failIf(b1c1.canBeMergedWith(b1))
|
| - self.failIf(b1c1.canBeMergedWith(b1r1))
|
| - self.failIf(b1c1.canBeMergedWith(b1r2))
|
| - self.failIf(b1c1.canBeMergedWith(b2r2))
|
| - self.failIf(b1c1.canBeMergedWith(b1r1p1))
|
| - self.failUnless(b1c1.canBeMergedWith(b1c1))
|
| - self.failUnless(b1c1.canBeMergedWith(b1c2))
|
| -
|
| - sm = b1.mergeWith([])
|
| - self.failUnlessEqual(sm.branch, "branch1")
|
| - self.failUnlessEqual(sm.revision, None)
|
| - self.failUnlessEqual(sm.patch, None)
|
| - self.failUnlessEqual(sm.changes, ())
|
| -
|
| - ss = b1r1.mergeWith([b1r1])
|
| - self.failUnlessEqual(ss, S("branch1", "rev1", None, None))
|
| - why = b1r1.mergeReasons([b1r1])
|
| - self.failUnlessEqual(why, "why2")
|
| - why = b1r1.mergeReasons([b1r1a])
|
| - self.failUnlessEqual(why, "why2, why not")
|
| -
|
| - ss = b1c1.mergeWith([b1c2])
|
| - self.failUnlessEqual(ss, S("branch1", None, None, [c1,c2,c3,c4,c5,c6]))
|
| - why = b1c1.mergeReasons([b1c2])
|
| - self.failUnlessEqual(why, "changes")
|
| -
|
| -
|
| -class FakeBuilder:
|
| - name = "fake"
|
| - def __init__(self):
|
| - self.requests = []
|
| - def submitBuildRequest(self, req):
|
| - self.requests.append(req)
|
| -
|
| -
|
| -class Set(unittest.TestCase):
|
| - def testBuildSet(self):
|
| - S = buildset.BuildSet
|
| - a,b = FakeBuilder(), FakeBuilder()
|
| -
|
| - # two builds, the first one fails, the second one succeeds. The
|
| - # waitUntilSuccess watcher fires as soon as the first one fails,
|
| - # while the waitUntilFinished watcher doesn't fire until all builds
|
| - # are complete.
|
| -
|
| - source = sourcestamp.SourceStamp()
|
| - s = S(["a","b"], source, "forced build")
|
| - s.start([a,b])
|
| - self.failUnlessEqual(len(a.requests), 1)
|
| - self.failUnlessEqual(len(b.requests), 1)
|
| - r1 = a.requests[0]
|
| - self.failUnlessEqual(r1.reason, s.reason)
|
| - self.failUnlessEqual(r1.source, s.source)
|
| -
|
| - st = s.status
|
| - self.failUnlessEqual(st.getSourceStamp(), source)
|
| - self.failUnlessEqual(st.getReason(), "forced build")
|
| - self.failUnlessEqual(st.getBuilderNames(), ["a","b"])
|
| - self.failIf(st.isFinished())
|
| - brs = st.getBuildRequests()
|
| - self.failUnlessEqual(len(brs), 2)
|
| -
|
| - res = []
|
| - d1 = s.waitUntilSuccess()
|
| - d1.addCallback(lambda r: res.append(("success", r)))
|
| - d2 = s.waitUntilFinished()
|
| - d2.addCallback(lambda r: res.append(("finished", r)))
|
| -
|
| - self.failUnlessEqual(res, [])
|
| -
|
| - # the first build finishes here, with FAILURE
|
| - builderstatus_a = builder.BuilderStatus("a")
|
| - bsa = builder.BuildStatus(builderstatus_a, 1)
|
| - bsa.setResults(builder.FAILURE)
|
| - a.requests[0].finished(bsa)
|
| -
|
| - # any FAILURE flunks the BuildSet immediately, so the
|
| - # waitUntilSuccess deferred fires right away. However, the
|
| - # waitUntilFinished deferred must wait until all builds have
|
| - # completed.
|
| - self.failUnlessEqual(len(res), 1)
|
| - self.failUnlessEqual(res[0][0], "success")
|
| - bss = res[0][1]
|
| - self.failUnless(interfaces.IBuildSetStatus(bss, None))
|
| - self.failUnlessEqual(bss.getResults(), builder.FAILURE)
|
| -
|
| - # here we finish the second build
|
| - builderstatus_b = builder.BuilderStatus("b")
|
| - bsb = builder.BuildStatus(builderstatus_b, 1)
|
| - bsb.setResults(builder.SUCCESS)
|
| - b.requests[0].finished(bsb)
|
| -
|
| - # .. which ought to fire the waitUntilFinished deferred
|
| - self.failUnlessEqual(len(res), 2)
|
| - self.failUnlessEqual(res[1][0], "finished")
|
| - self.failUnlessEqual(res[1][1], bss)
|
| -
|
| - # and finish the BuildSet overall
|
| - self.failUnless(st.isFinished())
|
| - self.failUnlessEqual(st.getResults(), builder.FAILURE)
|
| -
|
| - def testSuccess(self):
|
| - S = buildset.BuildSet
|
| - a,b = FakeBuilder(), FakeBuilder()
|
| - # this time, both builds succeed
|
| -
|
| - source = sourcestamp.SourceStamp()
|
| - s = S(["a","b"], source, "forced build")
|
| - s.start([a,b])
|
| -
|
| - st = s.status
|
| - self.failUnlessEqual(st.getSourceStamp(), source)
|
| - self.failUnlessEqual(st.getReason(), "forced build")
|
| - self.failUnlessEqual(st.getBuilderNames(), ["a","b"])
|
| - self.failIf(st.isFinished())
|
| -
|
| - builderstatus_a = builder.BuilderStatus("a")
|
| - bsa = builder.BuildStatus(builderstatus_a, 1)
|
| - bsa.setResults(builder.SUCCESS)
|
| - a.requests[0].finished(bsa)
|
| -
|
| - builderstatus_b = builder.BuilderStatus("b")
|
| - bsb = builder.BuildStatus(builderstatus_b, 1)
|
| - bsb.setResults(builder.SUCCESS)
|
| - b.requests[0].finished(bsb)
|
| -
|
| - self.failUnless(st.isFinished())
|
| - self.failUnlessEqual(st.getResults(), builder.SUCCESS)
|
| -
|
|
|