File tree Expand file tree Collapse file tree 6 files changed +47
-52
lines changed Expand file tree Collapse file tree 6 files changed +47
-52
lines changed Original file line number Diff line number Diff line change 3030
3131test : types
3232 @echo " Running Python tests"
33+ uv pip uninstall pook || true
3334 export VIRTUAL_ENV=.venv; .venv/bin/wait-for-it --service httpbin.local:443 --service localhost:6379 --timeout 5 -- .venv/bin/pytest
35+ uv pip install pook && .venv/bin/pytest tests/test_pook.py && uv pip uninstall pook
3436 @echo " "
3537
3638safetest :
@@ -41,7 +43,7 @@ publish: clean install-test-requirements
4143 uv run twine upload --repository mocket dist/* .tar.gz
4244
4345clean :
44- rm -rf * .egg-info dist/ requirements.txt uv.lock || true
46+ rm -rf .coverage * .egg-info dist/ requirements.txt uv.lock || true
4547 find . -type d -name __pycache__ -exec rm -rf {} \; || true
4648
4749.PHONY : clean publish safetest test setup develop lint-python test-python _services-up
Original file line number Diff line number Diff line change 4848except ImportError :
4949 pyopenssl_override = False
5050
51- try : # pragma: no cover
52- from aiohttp import TCPConnector
53-
54- aiohttp_make_ssl_context_cache_clear = TCPConnector ._make_ssl_context .cache_clear
55- except (ImportError , AttributeError ):
56- aiohttp_make_ssl_context_cache_clear = None
57-
58-
5951true_socket = socket .socket
6052true_create_connection = socket .create_connection
6153true_gethostbyname = socket .gethostbyname
@@ -566,8 +558,6 @@ def enable(namespace=None, truesocket_recording_dir=None):
566558 if pyopenssl_override : # pragma: no cover
567559 # Take out the pyopenssl version - use the default implementation
568560 extract_from_urllib3 ()
569- if aiohttp_make_ssl_context_cache_clear : # pragma: no cover
570- aiohttp_make_ssl_context_cache_clear ()
571561
572562 @staticmethod
573563 def disable ():
@@ -604,8 +594,6 @@ def disable():
604594 if pyopenssl_override : # pragma: no cover
605595 # Put the pyopenssl version back in place
606596 inject_into_urllib3 ()
607- if aiohttp_make_ssl_context_cache_clear : # pragma: no cover
608- aiohttp_make_ssl_context_cache_clear ()
609597
610598 @classmethod
611599 def get_namespace (cls ):
Original file line number Diff line number Diff line change 1- from pook .engine import MockEngine
2- from pook .interceptors .base import BaseInterceptor
1+ try :
2+ from pook .engine import MockEngine
3+ except ModuleNotFoundError :
4+ MockEngine = object
35
46from mocket .mocket import Mocket
57from mocket .mockhttp import Entry , Response
@@ -37,17 +39,6 @@ def single_register(
3739 return entry
3840
3941
40- class MocketInterceptor (BaseInterceptor ):
41- @staticmethod
42- def activate ():
43- Mocket .disable ()
44- Mocket .enable ()
45-
46- @staticmethod
47- def disable ():
48- Mocket .disable ()
49-
50-
5142class MocketEngine (MockEngine ):
5243 def __init__ (self , engine ):
5344 def mocket_mock_fun (* args , ** kwargs ):
@@ -68,6 +59,18 @@ def mocket_mock_fun(*args, **kwargs):
6859
6960 return mock
7061
62+ from pook .interceptors .base import BaseInterceptor
63+
64+ class MocketInterceptor (BaseInterceptor ):
65+ @staticmethod
66+ def activate ():
67+ Mocket .disable ()
68+ Mocket .enable ()
69+
70+ @staticmethod
71+ def disable ():
72+ Mocket .disable ()
73+
7174 # Store plugins engine
7275 self .engine = engine
7376 # Store HTTP client interceptors
Original file line number Diff line number Diff line change @@ -46,15 +46,14 @@ test = [
4646 " redis" ,
4747 " gevent" ,
4848 " sure" ,
49- " pook" ,
5049 " flake8>5" ,
5150 " xxhash" ,
5251 " httpx" ,
5352 " pipfile" ,
5453 " build" ,
5554 " twine" ,
5655 " fastapi" ,
57- " aiohttp<3.10.6 " ,
56+ " aiohttp" ,
5857 " wait-for-it" ,
5958 " mypy" ,
6059 " types-decorator" ,
@@ -89,7 +88,7 @@ exclude = [
8988testpaths = [
9089 " tests" , " mocket" ,
9190]
92- addopts = " --doctest-modules --cov=mocket --cov-report=term-missing -v -x"
91+ addopts = " --doctest-modules --cov=mocket --cov-report=term-missing --cov-append - v -x"
9392
9493[tool .ruff ]
9594src = [" mocket" , " tests" ]
Original file line number Diff line number Diff line change 44import socket
55import tempfile
66
7- import aiohttp
87import pytest
98
109from mocket import Mocketizer , async_mocketize
@@ -46,6 +45,8 @@ async def test_asyncio_connection():
4645@pytest .mark .asyncio
4746@async_mocketize
4847async def test_aiohttp ():
48+ import aiohttp
49+
4950 url = "https://bar.foo/"
5051 data = {"message" : "Hello" }
5152
Original file line number Diff line number Diff line change 1- import pook
2- import requests
1+ import contextlib
32
4- from mocket .plugins .pook_mock_engine import MocketEngine
3+ with contextlib .suppress (ModuleNotFoundError ):
4+ import pook
5+ import requests
56
6- pook . set_mock_engine ( MocketEngine )
7+ from mocket . plugins . pook_mock_engine import MocketEngine
78
9+ pook .set_mock_engine (MocketEngine )
810
9- @pook .on
10- def test_pook_engine ():
11- url = "http://twitter.com/api/1/foobar"
12- status = 404
13- response_json = {"error" : "foo" }
11+ @pook .on
12+ def test_pook_engine ():
13+ url = "http://twitter.com/api/1/foobar"
14+ status = 404
15+ response_json = {"error" : "foo" }
1416
15- mock = pook .get (
16- url ,
17- headers = {"content-type" : "application/json" },
18- reply = status ,
19- response_json = response_json ,
20- )
21- mock .persist ()
17+ mock = pook .get (
18+ url ,
19+ headers = {"content-type" : "application/json" },
20+ reply = status ,
21+ response_json = response_json ,
22+ )
23+ mock .persist ()
2224
23- requests .get (url )
24- assert mock .calls == 1
25+ requests .get (url )
26+ assert mock .calls == 1
2527
26- resp = requests .get (url )
27- assert resp .status_code == status
28- assert resp .json () == response_json
29- assert mock .calls == 2
28+ resp = requests .get (url )
29+ assert resp .status_code == status
30+ assert resp .json () == response_json
31+ assert mock .calls == 2
You can’t perform that action at this time.
0 commit comments