コード例 #1
0
ファイル: test_config.py プロジェクト: crogers1/buildbot
 def testSchedulers(self):
     s1 = scheduler.Scheduler(name='quick',
                              branch=None,
                              treeStableTimer=30,
                              builderNames=['quick'])
     s2 = scheduler.Scheduler(name="all",
                              branch=None,
                              treeStableTimer=5 * 60,
                              builderNames=["a", "b"])
     s3 = scheduler.Try_Userpass("try", ["a", "b"],
                                 port=9989,
                                 userpass=[("foo", "bar")])
     s1a = scheduler.Scheduler(name='quick',
                               branch=None,
                               treeStableTimer=30,
                               builderNames=['quick'])
     s2a = scheduler.Scheduler(name="all",
                               branch=None,
                               treeStableTimer=5 * 60,
                               builderNames=["a", "b"])
     s3a = scheduler.Try_Userpass("try", ["a", "b"],
                                  port=9989,
                                  userpass=[("foo", "bar")])
     self.failUnless(s1 == s1)
     self.failUnless(s1 == s1a)
     self.failUnless(s1a in [s1, s2, s3])
     self.failUnless(s2a in [s1, s2, s3])
     self.failUnless(s3a in [s1, s2, s3])
コード例 #2
0
    def testCategory(self):
        s1 = scheduler.Scheduler("b1",
                                 "branch1",
                                 2, ["a", "b"],
                                 categories=["categoryA", "both"])
        self.addScheduler(s1)
        s2 = scheduler.Scheduler("b2",
                                 "branch1",
                                 2, ["a", "b"],
                                 categories=["categoryB", "both"])
        self.addScheduler(s2)

        c0 = Change("carol", ["important"],
                    "branch1",
                    branch="branch1",
                    category="categoryA")
        s1.addChange(c0)
        s2.addChange(c0)

        c1 = Change("carol", ["important"],
                    "branch1",
                    branch="branch1",
                    category="categoryB")
        s1.addChange(c1)
        s2.addChange(c1)

        c2 = Change("carol", ["important"], "branch1", branch="branch1")
        s1.addChange(c2)
        s2.addChange(c2)

        c3 = Change("carol", ["important"],
                    "branch1",
                    branch="branch1",
                    category="both")
        s1.addChange(c3)
        s2.addChange(c3)

        self.failUnlessEqual(s1.importantChanges, [c0, c3])
        self.failUnlessEqual(s2.importantChanges, [c1, c3])

        s = scheduler.Scheduler("b3", "branch1", 2, ["a", "b"])
        self.addScheduler(s)

        c0 = Change("carol", ["important"],
                    "branch1",
                    branch="branch1",
                    category="categoryA")
        s.addChange(c0)
        c1 = Change("carol", ["important"],
                    "branch1",
                    branch="branch1",
                    category="categoryB")
        s.addChange(c1)

        self.failUnlessEqual(s.importantChanges, [c0, c1])
コード例 #3
0
    def testOffBranch(self):
        self.basedir = 'scheduler/Scheduling/OffBranch'
        self.create_master()
        s = scheduler.Scheduler("b1",
                                branch="branch1",
                                treeStableTimer=2,
                                builderNames=["a", "b"],
                                fileIsImportant=self.isImportant)
        d = self.setSchedulers(s)

        def _addChange(ign, c):
            self.master.change_svc.addChange(c)
            return self.master.scheduler_manager.when_quiet()

        c0 = Change("carol", ["important"], "other branch", branch="other")
        d.addCallback(_addChange, c0)

        def _check(ign):
            important, unimportant = self.master.db.runInteractionNow(
                lambda t: self.master.db.scheduler_get_classified_changes(
                    s.schedulerid, t))
            self.failIf(important)
            self.failIf(unimportant)

        d.addCallback(_check)
コード例 #4
0
    def testBranch(self):
        s = scheduler.Scheduler("b1",
                                "branch1",
                                2, ["a", "b"],
                                fileIsImportant=self.isImportant)
        self.addScheduler(s)

        c0 = Change("carol", ["important"], "other branch", branch="other")
        s.addChange(c0)
        self.failIf(s.timer)
        self.failIf(s.importantChanges)

        c1 = Change("alice", ["important", "not important"],
                    "some changes",
                    branch="branch1")
        s.addChange(c1)
        c2 = Change("bob", ["not important", "boring"],
                    "some more changes",
                    branch="branch1")
        s.addChange(c2)
        c3 = Change("carol", ["important", "dull"],
                    "even more changes",
                    branch="branch1")
        s.addChange(c3)

        self.failUnlessEqual(s.importantChanges, [c1, c3])
        self.failUnlessEqual(s.allChanges, [c1, c2, c3])
        self.failUnless(s.timer)

        d = defer.Deferred()
        reactor.callLater(4, d.callback, None)
        d.addCallback(self._testBranch_1)
        return d
コード例 #5
0
    def testImportantChanges(self):
        self.basedir = 'scheduler/Scheduling/ImportantChanges'
        self.create_master()
        s = scheduler.Scheduler("b1",
                                branch="branch1",
                                treeStableTimer=2,
                                builderNames=["a", "b"],
                                fileIsImportant=self.isImportant)

        # Hijack run to prevent changes from being processed
        oldrun = s.run
        s.run = lambda: None

        d = self.setSchedulers(s)

        def _addChange(ign, c):
            self.master.change_svc.addChange(c)
            self.master.scheduler_manager.trigger()
            return self.master.db.runInteraction(s.classify_changes)

        c1 = Change("alice", ["important", "not important"],
                    "some changes",
                    branch="branch1")
        d.addCallback(_addChange, c1)
        c2 = Change("bob", ["not important", "boring"],
                    "some more changes",
                    branch="branch1")
        d.addCallback(_addChange, c2)
        c3 = Change("carol", ["important", "dull"],
                    "even more changes",
                    branch="branch1")
        d.addCallback(_addChange, c3)

        def _check(ign):
            important, unimportant = self.master.db.runInteractionNow(
                lambda t: self.master.db.scheduler_get_classified_changes(
                    s.schedulerid, t))
            important = [c.number for c in important]
            unimportant = [c.number for c in unimportant]
            self.failUnlessEqual(important, [c1.number, c3.number])
            self.failUnlessEqual(unimportant, [c2.number])
            s.run = oldrun
            d1 = s.run()
            d1.addCallback(lambda ign: self.master.scheduler_manager.trigger())
            d1.addCallback(
                lambda ign: self.master.scheduler_manager.when_quiet())
            return d1

        d.addCallback(_check)
        d.addCallback(self._testBranch_1)
        return d