def test_without_request(self, monkeypatch): async_result = pretend.stub() apply_async = pretend.call_recorder(lambda *a, **kw: async_result) get_current_request = pretend.call_recorder(lambda: None) monkeypatch.setattr(tasks, "get_current_request", get_current_request) task = tasks.WarehouseTask() task.app = Celery() monkeypatch.setattr(Task, "apply_async", apply_async) assert task.apply_async() is async_result assert apply_async.calls == [pretend.call(task)] assert get_current_request.calls == [pretend.call()]
def test_creates_request(self, monkeypatch): registry = pretend.stub() pyramid_env = {"request": pretend.stub()} monkeypatch.setattr(scripting, "prepare", lambda *a, **k: pyramid_env) obj = tasks.WarehouseTask() obj.app.pyramid_config = pretend.stub(registry=registry) request = obj.get_request() assert obj.request.pyramid_env == pyramid_env assert request is pyramid_env["request"] assert isinstance(request.tm, transaction.TransactionManager) assert 1.5e12 < request.timings["new_request_start"] < 1e13 assert request.remote_addr == "127.0.0.1"
def test_after_commit_hook(self, monkeypatch, success): args = [pretend.stub(), pretend.stub()] kwargs = {"foo": pretend.stub(), "bar": pretend.stub()} apply_async = pretend.call_recorder(lambda *a, **kw: None) task = tasks.WarehouseTask() task.app = Celery() monkeypatch.setattr(Task, "apply_async", apply_async) task._after_commit_hook(success, *args, **kwargs) if success: assert apply_async.calls == [pretend.call(task, *args, **kwargs)] else: assert apply_async.calls == []
def test_request_after_commit(self, monkeypatch): manager = pretend.stub( addAfterCommitHook=pretend.call_recorder(lambda *a, **kw: None)) request = pretend.stub(tm=pretend.stub( get=pretend.call_recorder(lambda: manager))) get_current_request = pretend.call_recorder(lambda: request) monkeypatch.setattr(tasks, "get_current_request", get_current_request) task = tasks.WarehouseTask() task.app = Celery() args = (pretend.stub(), pretend.stub()) kwargs = {"foo": pretend.stub()} assert task.apply_async(*args, **kwargs) is None assert get_current_request.calls == [pretend.call()] assert request.tm.get.calls == [pretend.call()] assert manager.addAfterCommitHook.calls == [ pretend.call(task._after_commit_hook, args=args, kws=kwargs) ]
def test_after_return_closes_env_runs_request_callbacks(self): obj = tasks.WarehouseTask() obj.request.pyramid_env = { "request": pretend.stub(_process_finished_callbacks=pretend.call_recorder( lambda: None)), "closer": pretend.call_recorder(lambda: None), } obj.after_return( pretend.stub(), pretend.stub(), pretend.stub(), pretend.stub(), pretend.stub(), pretend.stub(), ) assert obj.request.pyramid_env[ "request"]._process_finished_callbacks.calls == [pretend.call()] assert obj.request.pyramid_env["closer"].calls == [pretend.call()]