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