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
Пример #2
0
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__)
Пример #3
0
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__)