コード例 #1
0
ファイル: tests.py プロジェクト: b10k/spooler
    def test_http_matches_local(self):
        # Test that local and http submission produce identical results
        from sigasync import views
        oldview = views.get_spoolqueue
        httpqueue = MockSpoolQueue()
        views.get_spoolqueue = httpqueue

        from sigasync import sigasync_handler
        oldhandler = sigasync_handler.get_spoolqueue

        person = Person()
        try:
            send_async(print_handler, 'test_http', sender=Person,
                instance=person, created=True)

            localqueue = MockSpoolQueue()
            sigasync_handler.get_spoolqueue = localqueue
            send_async(print_handler, 'test', sender=Person,
                instance=person, created=True)

            httpdata = httpqueue.spoolqueue[-1].data
            localdata = localqueue.spoolqueue[-1].data
            # remove legitimate differences
            httpdata['spooler'] = 'test'
            httpdata['create_time'] = 0
            localdata['create_time'] = 0
            try:
                assert httpdata == localdata
            except AssertionError:
                pprint.pprint(httpdata)
                pprint.pprint(localdata)
                raise
        finally:
            views.get_spoolqueue = oldview
            sigasync_handler.get_spoolqueue = oldhandler
コード例 #2
0
ファイル: tests.py プロジェクト: b10k/spooler
    def test_list_submission_in_kwargs(self):
        person = Person()
        from sigasync import views
        oldview = views.get_spoolqueue
        spoolqueue = MockSpoolQueue()
        views.get_spoolqueue = spoolqueue

        try:
            send_async(print_handler, 'test_http', Person, instance=person,
                       contacts_id=[1,2,3,4])
            expected_data = simplejson.loads('{"contacts_id": [1, 2, 3, 4]}')
            data = simplejson.loads(spoolqueue.spoolqueue[-1].data['kwargs'])
            assert expected_data['contacts_id'] == data['contacts_id']
        finally:
            views.get_spoolqueue = oldview
コード例 #3
0
ファイル: tests.py プロジェクト: b10k/spooler
    def test_view_params(self):
        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)):
            send_async(pass_handler, 'test_http', sender=Person,
                instance=person, created=True)
            assert data['spooler'] == 'test_http'
            assert data['data']['instance'] == str(person.id)
コード例 #4
0
ファイル: tests.py プロジェクト: b10k/spooler
    def test_affinity_passed_to_spooler(self):
        logger = logging.getLogger(
                        'sigasync.tests.test_affinity_passed_to_spooler')
        from django.db import connection
        if not hasattr(connection, 'mapper'):
            logger.warning('MDB backend required for affinity test')
            return

        # Set regular affinity
        table = 'test1230487'
        connection.mapper._set_affinity(table)
        assert connection.mapper._has_affinity(table)

        # Run a spool job
        send_async(check_affinity, 'test', sender=None, table=table)
        # Wait for it to finish
        # This will raise an error if the job fails
        self.wait_for_job()
コード例 #5
0
ファイル: tests.py プロジェクト: b10k/spooler
 def test_submitted_datum(self):
     person = Person()
     from sigasync import views
     oldview = views.get_spoolqueue
     spoolqueue = MockSpoolQueue()
     views.get_spoolqueue = spoolqueue
     try:
         send_async(print_handler, 'test_http', sender=Person,
             instance=person, created=True)
         assert len(spoolqueue.spoolqueue) == 1
         sq = spoolqueue.spoolqueue[-1]
         assert sq.spooler == 'test_http'
         assert sq.data['func_name'] == 'print_handler'
         assert sq.data['func_module'] == 'sigasync.tests'
         assert sq.data['sender'] == 'webapp__Person'
         assert sq.data['instance'] == str(person.id)
         assert sq.data['kwargs'] == '{"created": true}'
     except AssertionError, err:
         try:
             print "Data:"
             pprint.pprint(spoolqueue.spoolqueue[-1].data)
         except:
             pass
         raise err
コード例 #6
0
ファイル: tests.py プロジェクト: b10k/spooler
        def helper():
            send_async(pass_handler, 'test', sender=Person, instance=person)
            assert not hasattr(spoolqueue, 'spoolqueue')
            transaction.commit()
            assert len(spoolqueue.spoolqueue) == 1

            send_async(pass_handler, 'test_http',
                       sender=Person, instance=person)
            transaction.commit()
            assert len(spoolqueue.spoolqueue) == 2

            send_async(pass_handler, 'test', sender=Person, instance=person)
            transaction.rollback()
            transaction.commit()
            assert len(spoolqueue.spoolqueue) == 2

            send_async(pass_handler, 'test', sender=Person, instance=person)