def test_custom_signal(self): class PollPublisher(BasePublisher): pass class PollModelObserver(ModelObserver): publisher = PollPublisher() class Meta: model = Poll def my_signal_receiver(self, sender, **kwargs): self.do_something(sender, my_arg=kwargs['my_arg']) def do_something(self, sender, **kwargs): pass my_signal = Signal(providing_args=['my_arg']) custom_signals = { 'my_signal': my_signal } self.observer = PollModelObserver(custom_signals=custom_signals) self.publisher = self.observer.publisher self.observer.do_something = method_logger(self.observer.do_something) self.assertFalse(self.observer.do_something.was_called) my_signal.send_robust(sender=Poll, my_arg='Test argument') self.assertTrue(self.observer.do_something.was_called) self.assertEqual(self.observer.do_something.context['args'], (Poll, )) self.assertEqual( self.observer.do_something.context['kwargs'], {'my_arg': 'Test argument'} ) del self.observer del self.publisher
def post_object_ready(instance): # Send signal "post_object_ready" when generic object is ready post_object_ready = Signal() post_object_ready.send_robust(sender=type(instance).__name__)
def post_object_ready(instance): # Send signal "post_object_ready" when generic object is ready post_object_ready = Signal() post_object_ready.send_robust(sender=type(instance).__name__)