diff --git a/src/pook/activate_async.py b/src/pook/activate_async.py index 0a4cf72..77d739a 100644 --- a/src/pook/activate_async.py +++ b/src/pook/activate_async.py @@ -24,5 +24,6 @@ async def wrapper(*args, **kw): fn(*args, **kw) finally: _engine.disable() + _engine.reset() return wrapper diff --git a/src/pook/api.py b/src/pook/api.py index 9593878..21708c5 100644 --- a/src/pook/api.py +++ b/src/pook/api.py @@ -137,7 +137,8 @@ def wrapper(*args, **kw): try: fn(*args, **kw) finally: - off() + _engine.disable() + _engine.reset() return wrapper diff --git a/tests/unit/api_test.py b/tests/unit/api_test.py index b872136..ca5e7b4 100644 --- a/tests/unit/api_test.py +++ b/tests/unit/api_test.py @@ -1,3 +1,4 @@ +import asyncio import pytest from pook import api @@ -47,3 +48,30 @@ def test_mock_contructors(engine): assert len(engine.mocks) == 0 assert engine.active is False + + +def test_activate_as_decorator(engine): + + @api.activate + def test_activate(): + api.get("foo.com") + assert engine.active is True + assert engine.isdone() is False + + test_activate() + assert engine.active is False + assert engine.isdone() is True + + +def test_activate_as_decorator_for_async(engine): + + @api.activate + async def test_activate(): + await asyncio.sleep(0) + api.get("foo.com") + assert engine.active is True + assert engine.isdone() is False + + await test_activate() + assert engine.active is False + assert engine.isdone() is True