コード例 #1
0
    def setUp(self):
        self.next_objectid = 13
        self.objectids = {}

        self.master = mock.Mock()
        self.master.master = self.master

        def getObjectId(sched_name, class_name):
            k = (sched_name, class_name)
            try:
                rv = self.objectids[k]
            except KeyError:
                rv = self.objectids[k] = self.next_objectid
                self.next_objectid += 1
            return defer.succeed(rv)

        self.master.db.state.getObjectId = getObjectId

        def getScheduler(sched_id):
            return defer.succeed(dict(enabled=True))

        self.master.db.schedulers.getScheduler = getScheduler

        self.new_config = mock.Mock()

        self.sm = manager.SchedulerManager()
        self.sm.setServiceParent(self.master)
        return self.sm.startService()
コード例 #2
0
    def test_finding_scheduler_by_builder_name(self):
        scheduler_manager = manager.SchedulerManager(self.master)

        first_scheduler = mock.Mock(spec=self.Sched,
                                    builderNames=['builder_a', 'builder_b'])
        scheduler_manager.addService(first_scheduler)

        second_scheduler = mock.Mock(spec=self.Sched,
                                     builderNames=['builder_c', 'builder_d'])
        scheduler_manager.addService(second_scheduler)

        self.assertEqual(
            scheduler_manager.findSchedulerByBuilderName('builder_c'),
            second_scheduler)
コード例 #3
0
    def setUp(self):
        self.next_objectid = 13
        self.objectids = {}

        self.master = mock.Mock()
        def getObjectId(sched_name, class_name):
            k = (sched_name, class_name)
            try:
                rv = self.objectids[k]
            except:
                rv = self.objectids[k] = self.next_objectid
                self.next_objectid += 1
            return defer.succeed(rv)
        self.master.db.state.getObjectId = getObjectId

        self.new_config = mock.Mock()

        self.sm = manager.SchedulerManager(self.master)
        self.sm.startService()
コード例 #4
0
    def test_finding_scheduler_by_name(self):
        scheduler_manager = manager.SchedulerManager(self.master)

        mocked_schedulers = [
            mock.Mock(spec=self.Sched),
            mock.Mock(spec=self.Sched),
            mock.Mock(spec=self.ReconfigSched),
            mock.Mock(spec=self.ReconfigSched),
        ]

        for index, scheduler in enumerate(mocked_schedulers):
            scheduler.name = 'scheduler-{}'.format(index)
            scheduler_manager.addService(scheduler)

        for scheduler in mocked_schedulers:
            self.assertEqual(
                scheduler_manager.findSchedulerByName(scheduler.name),
                scheduler)

        self.assertIsNone(
            scheduler_manager.findSchedulerByName('not-existing-scheduler'))
コード例 #5
0
    def test_finding_scheduler_by_builder_name_filter_by_scheduler_type(self):
        fake_scheduler_type = type('FakeScheduler', (base.BaseScheduler, ), {})

        scheduler_manager = manager.SchedulerManager(self.master)

        first_scheduler = mock.Mock(spec=self.Sched,
                                    builderNames=['builder_a', 'builder_b'])
        scheduler_manager.addService(first_scheduler)

        second_scheduler = mock.Mock(spec=fake_scheduler_type,
                                     builderNames=['builder_b', 'builder_c'])
        scheduler_manager.addService(second_scheduler)

        self.assertEqual(
            scheduler_manager.findSchedulerByBuilderName(
                'builder_b', scheduler_type=self.Sched),
            first_scheduler,
        )

        self.assertEqual(
            scheduler_manager.findSchedulerByBuilderName(
                'builder_b', scheduler_type=fake_scheduler_type),
            second_scheduler,
        )