コード例 #1
0
    def setUp(self):
        super(TriggerManagerUnlessTestCase, self).setUp()

        storage = storage_backends.get('cache', uid=self._testMethodName) # type: CacheStorageBackend
        storage.cache.clear()

        self.manager = trigger_managers.get('default', storage=storage) # type: TriggerManager
コード例 #2
0
    def manager(self):
        # type: () -> TriggerManager
        """
        Returns the correct manager instance for this task.
        """
        if self._manager is None:
            self._manager = trigger_managers.get(
                key=self.manager_type,
                storage=storage_backends.get(
                    key=self.storage_type,
                    uid=self.storage_uid,
                ),
            )  # type: TriggerManager

        # noinspection PyTypeChecker
        return self._manager
コード例 #3
0
    def run(self, result=None):
        self.post_fire_calls = []
        self.post_replay_calls = []
        self.post_skip_calls = []

        # Create an alias to ``self`` so that we can use it in the
        # trigger manager hooks.
        test = self

        class PirateTriggerManager(TriggerManager):
            """
            A trigger manager that has been outfitted with stylish
            hooks (parrot and eye patch not included).
            """
            def _post_fire(self, trigger_name, tasks_scheduled):
                test.post_fire_calls.append((
                    trigger_name,

                    # Tracking instances is a bit tricky; to make
                    # things simpler, we'll log the instance name
                    # instead.
                    [instance.name for instance in tasks_scheduled],
                ))

            def _post_replay(self, task_instance):
                test.post_replay_calls.append(task_instance.name)

            def _post_skip(self, task_instance, cascade):
                test.post_skip_calls.append((task_instance.name, cascade))

        storage = storage_backends.get(
            'cache', uid=self._testMethodName)  # type: CacheStorageBackend
        storage.cache.clear()

        # Temporarily inject our custom trigger manager into the
        # registry.
        trigger_managers._get_cache()[self._testMethodName] =\
            PirateTriggerManager
        try:
            self.manager =\
                trigger_managers.get(self._testMethodName, storage=storage) # type: PirateTriggerManager

            super(TriggerManagerHooksTestCase, self).run(result)
        finally:
            trigger_managers.refresh()