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
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
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()