Пример #1
0
    def testStopBuildWaitingForStepLocks(self):
        b = self.build

        slavebuilder = Mock()

        l = SlaveLock('lock')
        lock_access = l.access('counting')
        l.access = lambda mode: lock_access
        real_lock = b.builder.botmaster.getLockByID(l).getLock(slavebuilder)

        step = LoggingBuildStep(locks=[lock_access])
        b.setStepFactories([FakeStepFactory(step)])

        real_lock.claim(Mock(), l.access('counting'))

        gotLocks = [False]

        def acquireLocks(res=None):
            gotLocks[0] = True
            retval = LoggingBuildStep.acquireLocks(step, res)
            self.assert_(b.currentStep is step)
            b.stopBuild('stop it')
            return retval

        step.acquireLocks = acquireLocks
        step.setStepStatus = Mock()
        step._step_status = Mock()
        step.step_status.addLog().chunkSize = 10
        step.step_status.getLogs.return_value = []

        b.startBuild(FakeBuildStatus(), None, slavebuilder)

        self.assertEqual(gotLocks, [True])
        self.assert_(('stepStarted', (), {}) in step.step_status.method_calls)
        self.assertEqual(b.result, EXCEPTION)
    def testStopBuildWaitingForStepLocks(self):
        b = self.build

        lock = WorkerLock('lock')
        lock_access = lock.access('counting')
        lock.access = lambda mode: lock_access
        real_lock = b.builder.botmaster.getLockByID(lock) \
            .getLock(self.workerforbuilder.worker)

        step = LoggingBuildStep(locks=[lock_access])
        b.setStepFactories([FakeStepFactory(step)])

        real_lock.claim(Mock(), lock.access('counting'))

        gotLocks = [False]

        def acquireLocks(res=None):
            gotLocks[0] = True
            retval = LoggingBuildStep.acquireLocks(step, res)
            self.assertTrue(b.currentStep is step)
            b.stopBuild('stop it')
            return retval

        step.acquireLocks = acquireLocks

        b.startBuild(FakeBuildStatus(), self.workerforbuilder)

        self.assertEqual(gotLocks, [True])
        self.assertEqual(b.results, CANCELLED)
Пример #3
0
 def test_evaluateCommand_success(self):
     cmd = FakeCmd("Log text", "Log text")
     lbs = LoggingBuildStep()
     status = lbs.evaluateCommand(cmd)
     self.assertEqual(
         status, SUCCESS,
         "evaluateCommand returned %d, should've returned %d" %
         (status, SUCCESS))
Пример #4
0
 def test_evaluateCommand_failed(self):
     cmd = FakeCmd("Log text", "", 23)
     lbs = LoggingBuildStep()
     status = lbs.evaluateCommand(cmd)
     self.assertEqual(
         status, FAILURE,
         "evaluateCommand returned %d, should've returned %d" %
         (status, FAILURE))
Пример #5
0
    def test_evaluateCommand_log_eval_func(self):
        cmd = FakeCmd("Log text", "")

        def eval(cmd, step_status):
            return WARNINGS

        lbs = LoggingBuildStep(log_eval_func=eval)
        status = lbs.evaluateCommand(cmd)
        self.assertEqual(
            status, WARNINGS,
            "evaluateCommand didn't call log_eval_func or overrode its results"
        )