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 30
30
31
31
test : types
32
32
@echo " Running Python tests"
33
+ uv pip uninstall pook || true
33
34
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
34
36
@echo " "
35
37
36
38
safetest :
@@ -41,7 +43,7 @@ publish: clean install-test-requirements
41
43
uv run twine upload --repository mocket dist/* .tar.gz
42
44
43
45
clean :
44
- rm -rf * .egg-info dist/ requirements.txt uv.lock || true
46
+ rm -rf .coverage * .egg-info dist/ requirements.txt uv.lock || true
45
47
find . -type d -name __pycache__ -exec rm -rf {} \; || true
46
48
47
49
.PHONY : clean publish safetest test setup develop lint-python test-python _services-up
Original file line number Diff line number Diff line change 48
48
except ImportError :
49
49
pyopenssl_override = False
50
50
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
-
59
51
true_socket = socket .socket
60
52
true_create_connection = socket .create_connection
61
53
true_gethostbyname = socket .gethostbyname
@@ -566,8 +558,6 @@ def enable(namespace=None, truesocket_recording_dir=None):
566
558
if pyopenssl_override : # pragma: no cover
567
559
# Take out the pyopenssl version - use the default implementation
568
560
extract_from_urllib3 ()
569
- if aiohttp_make_ssl_context_cache_clear : # pragma: no cover
570
- aiohttp_make_ssl_context_cache_clear ()
571
561
572
562
@staticmethod
573
563
def disable ():
@@ -604,8 +594,6 @@ def disable():
604
594
if pyopenssl_override : # pragma: no cover
605
595
# Put the pyopenssl version back in place
606
596
inject_into_urllib3 ()
607
- if aiohttp_make_ssl_context_cache_clear : # pragma: no cover
608
- aiohttp_make_ssl_context_cache_clear ()
609
597
610
598
@classmethod
611
599
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
3
5
4
6
from mocket .mocket import Mocket
5
7
from mocket .mockhttp import Entry , Response
@@ -37,17 +39,6 @@ def single_register(
37
39
return entry
38
40
39
41
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
-
51
42
class MocketEngine (MockEngine ):
52
43
def __init__ (self , engine ):
53
44
def mocket_mock_fun (* args , ** kwargs ):
@@ -68,6 +59,18 @@ def mocket_mock_fun(*args, **kwargs):
68
59
69
60
return mock
70
61
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
+
71
74
# Store plugins engine
72
75
self .engine = engine
73
76
# Store HTTP client interceptors
Original file line number Diff line number Diff line change @@ -46,15 +46,14 @@ test = [
46
46
" redis" ,
47
47
" gevent" ,
48
48
" sure" ,
49
- " pook" ,
50
49
" flake8>5" ,
51
50
" xxhash" ,
52
51
" httpx" ,
53
52
" pipfile" ,
54
53
" build" ,
55
54
" twine" ,
56
55
" fastapi" ,
57
- " aiohttp<3.10.6 " ,
56
+ " aiohttp" ,
58
57
" wait-for-it" ,
59
58
" mypy" ,
60
59
" types-decorator" ,
@@ -89,7 +88,7 @@ exclude = [
89
88
testpaths = [
90
89
" tests" , " mocket" ,
91
90
]
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"
93
92
94
93
[tool .ruff ]
95
94
src = [" mocket" , " tests" ]
Original file line number Diff line number Diff line change 4
4
import socket
5
5
import tempfile
6
6
7
- import aiohttp
8
7
import pytest
9
8
10
9
from mocket import Mocketizer , async_mocketize
@@ -46,6 +45,8 @@ async def test_asyncio_connection():
46
45
@pytest .mark .asyncio
47
46
@async_mocketize
48
47
async def test_aiohttp ():
48
+ import aiohttp
49
+
49
50
url = "https://bar.foo/"
50
51
data = {"message" : "Hello" }
51
52
Original file line number Diff line number Diff line change 1
- import pook
2
- import requests
1
+ import contextlib
3
2
4
- from mocket .plugins .pook_mock_engine import MocketEngine
3
+ with contextlib .suppress (ModuleNotFoundError ):
4
+ import pook
5
+ import requests
5
6
6
- pook . set_mock_engine ( MocketEngine )
7
+ from mocket . plugins . pook_mock_engine import MocketEngine
7
8
9
+ pook .set_mock_engine (MocketEngine )
8
10
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" }
14
16
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 ()
22
24
23
- requests .get (url )
24
- assert mock .calls == 1
25
+ requests .get (url )
26
+ assert mock .calls == 1
25
27
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