def test_dispatcher_sends_via_http(self): test_signal = Signal() async_connect(http_test_handler, spooler='test_http', signal=test_signal, sender=Person) data = {} def testview(request, spooler): data.update({ 'spooler': spooler, 'data': request.POST.copy(), }) from django.http import HttpResponse return HttpResponse('OK') person = Person() with URLOverride((r'^spooler/(?P<spooler>.+)/$', testview)): test_signal.send(instance=person, sender=Person) print data assert data['spooler'] == 'test_http' assert data['data']['instance'] == str(person.id)
def test_submit(self): # XXX Move this to MPSigAsyncTest self.manager = TestSpoolManager() sc = SigAsyncContainer(manager=self.manager) self._container = Process(target=sc.run, args=()) self._container.start() try: async_test1 = Signal() async_connect(pass_handler, signal=async_test1, sender=Person) p = Person() async_test1.send(sender=Person, instance=p) try: self.manager._processed.get(timeout=1) except Empty: try: (s, f) = self.manager._failed.get_nowait() except Empty: raise AssertionError("Timed out waiting for entry to process") else: raise AssertionError("Job failed") finally: os.kill(self._container.pid, signal.SIGINT) self._container.join()
def test_new_receiver_gets_only_overriden_signal(self): u""" Checks that receivers registered inside ``override_signals`` context get only signals emitted inside the context block. """ signal = Signal(providing_args=[u'message']) signal.send(sender=None, message=u'before') with override_signals(signal): new_receiver = mock.Mock() signal.connect(new_receiver) signal.send(sender=None, message=u'overriden') signal.send(sender=None, message=u'after') self.assertEqual(new_receiver.mock_calls, [ mock.call(message=u'overriden', sender=None, signal=signal), ])
def test_original_receiver_does_not_get_overriden_signal(self): u""" Checks that receivers registered outside ``override_signals`` context do not get signals emitted inside the context block. """ signal = Signal(providing_args=[u'message']) original_receiver = mock.Mock() signal.connect(original_receiver) signal.send(sender=None, message=u'before') with override_signals(signal): signal.send(sender=None, message=u'overriden') signal.send(sender=None, message=u'after') self.assertEqual(original_receiver.mock_calls, [ mock.call(message=u'before', sender=None, signal=signal), mock.call(message=u'after', sender=None, signal=signal), ])
def test_with_multiple_signals(self): signal1 = Signal(providing_args=[u'message']) signal2 = Signal(providing_args=[u'message']) original_receiver = mock.Mock() signal1.connect(original_receiver) signal2.connect(original_receiver) signal1.send(sender=None, message=u'before') signal2.send(sender=None, message=u'before') with override_signals(signal1, signal2): new_receiver = mock.Mock() signal1.connect(new_receiver) signal2.connect(new_receiver) signal1.send(sender=None, message=u'overriden') signal2.send(sender=None, message=u'overriden') signal1.send(sender=None, message=u'after') signal2.send(sender=None, message=u'after') self.assertEqual(original_receiver.mock_calls, [ mock.call(message=u'before', sender=None, signal=signal1), mock.call(message=u'before', sender=None, signal=signal2), mock.call(message=u'after', sender=None, signal=signal1), mock.call(message=u'after', sender=None, signal=signal2), ]) self.assertEqual(new_receiver.mock_calls, [ mock.call(message=u'overriden', sender=None, signal=signal1), mock.call(message=u'overriden', sender=None, signal=signal2), ])