예제 #1
0
파일: test_cache.py 프로젝트: Scalr/celery
    def test_on_chord_part_return(self, restore):
        tb = CacheBackend(backend='memory://', app=self.app)

        deps = Mock()
        deps.__len__ = Mock()
        deps.__len__.return_value = 2
        restore.return_value = deps
        task = Mock()
        task.name = 'foobarbaz'
        self.app.tasks['foobarbaz'] = task
        task.request.chord = signature(task)

        result = self.app.GroupResult(
            uuid(),
            [self.app.AsyncResult(uuid()) for _ in range(3)],
        )
        task.request.group = result.id
        tb.apply_chord(result, None)

        deps.join_native.assert_not_called()
        tb.on_chord_part_return(task.request, 'SUCCESS', 10)
        deps.join_native.assert_not_called()

        tb.on_chord_part_return(task.request, 'SUCCESS', 10)
        deps.join_native.assert_called_with(propagate=True, timeout=3.0)
        deps.delete.assert_called_with()
예제 #2
0
    def test_load(self):
        with patch('pkg_resources.iter_entry_points') as iterep:
            with patch('celery.utils.imports.symbol_by_name') as symbyname:
                ep = Mock()
                ep.name = 'ep'
                ep.module_name = 'foo'
                ep.attrs = ['bar', 'baz']
                iterep.return_value = [ep]
                cls = symbyname.return_value = Mock()
                register = Mock()
                e = Extensions('unit', register)
                e.load()
                symbyname.assert_called_with('foo:bar')
                register.assert_called_with(cls, name='ep')

            with patch('celery.utils.imports.symbol_by_name') as symbyname:
                symbyname.side_effect = SyntaxError()
                with patch('warnings.warn') as warn:
                    e.load()
                    warn.assert_called()

            with patch('celery.utils.imports.symbol_by_name') as symbyname:
                symbyname.side_effect = KeyError('foo')
                with pytest.raises(KeyError):
                    e.load()
예제 #3
0
def MockStep(step=None):
    if step is None:
        step = Mock(name='step')
    else:
        step.blueprint = Mock(name='step.blueprint')
    step.blueprint.name = 'MockNS'
    step.name = 'MockStep(%s)' % (id(step),)
    return step
예제 #4
0
 def create_task(self):
     tid = uuid()
     task = Mock(name='task-{0}'.format(tid))
     task.name = 'foobarbaz'
     self.app.tasks['foobarbaz'] = task
     task.request.chord = signature(task)
     task.request.id = tid
     task.request.chord['chord_size'] = 10
     task.request.group = 'group_id'
     return task
예제 #5
0
파일: test_redis.py 프로젝트: bryson/celery
 def create_task(self):
     tid = uuid()
     task = Mock(name="task-{0}".format(tid))
     task.name = "foobarbaz"
     self.app.tasks["foobarbaz"] = task
     task.request.chord = signature(task)
     task.request.id = tid
     task.request.chord["chord_size"] = 10
     task.request.group = "group_id"
     return task
예제 #6
0
파일: test_sqs.py 프로젝트: Erve1879/kombu
    def test_connect_to_region(self):
        with patch('kombu.async.aws.sqs.regions') as regions:
            region = Mock(name='region')
            region.name = 'us-west-1'
            regions.return_value = [region]
            conn = connect_to_region('us-west-1', kw=3.33)
            assert conn is region.connect.return_value
            region.connect.assert_called_with(kw=3.33)

            assert connect_to_region('foo') is None
예제 #7
0
파일: test_base.py 프로젝트: fcurella/thorn
 def test_prepare_requests(self):
     event = Mock(name='event')
     event.name = 'foo.bar'
     self.dispatcher.Request = Mock(name='Request')
     self.dispatcher.subscribers_for_event = Mock(name='subscribers')
     targets = self.dispatcher.subscribers_for_event.return_value = [
         Mock(name='r1'), Mock(name='r2'), Mock(name='r3'),
     ]
     targets[0].content_type = 'A'
     targets[1].content_type = 'A'
     targets[2].content_type = 'B'
     codecB = Mock(name='codecB')
     self._app.settings.THORN_CODECS = {'B': codecB}
     list(self.dispatcher.prepare_requests(
         event.name, {'foo': 'bar'}, 501, 30.3, kw=1,
     ))
     self._app.Request.assert_has_calls([
         call(event.name, {'foo': 'bar'}, 501, targets[0],
              timeout=30.3, kw=1),
         call(event.name, {'foo': 'bar'}, 501, targets[1],
              timeout=30.3, kw=1),
         call(event.name, codecB(), 501, targets[2],
              timeout=30.3, kw=1),
     ])