Example #1
0
    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)
Example #2
0
    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()
Example #3
0
 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),
     ])
Example #4
0
 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),
         ])
Example #5
0
 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),
     ])
Example #6
0
 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),
         ])
Example #7
0
 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),
     ])
Example #8
0
 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),
         ])