forked from pool/python-mocket
Accepting request 1067850 from devel:languages:python
Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/1067850 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-mocket?expand=0&rev=26
This commit is contained in:
commit
da61a95bc3
@ -1,150 +0,0 @@
|
|||||||
From dbf7b8d2ce480285ec30c682eb746d912d1304a3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giorgio Salluzzo <giorgio.salluzzo@gmail.com>
|
|
||||||
Date: Mon, 5 Dec 2022 00:54:16 +0100
|
|
||||||
Subject: [PATCH 07/15] Switching to `httptools.parser.HttpRequestParser`.
|
|
||||||
|
|
||||||
---
|
|
||||||
Pipfile | 2 +-
|
|
||||||
mocket/mockhttp.py | 71 +++++++++++++++++++---------
|
|
||||||
mocket/plugins/httpretty/__init__.py | 10 ++--
|
|
||||||
tests/main/test_http.py | 2 +-
|
|
||||||
4 files changed, 56 insertions(+), 29 deletions(-)
|
|
||||||
|
|
||||||
Index: mocket-3.10.9/mocket/mockhttp.py
|
|
||||||
===================================================================
|
|
||||||
--- mocket-3.10.9.orig/mocket/mockhttp.py
|
|
||||||
+++ mocket-3.10.9/mocket/mockhttp.py
|
|
||||||
@@ -3,13 +3,10 @@ import time
|
|
||||||
from http.server import BaseHTTPRequestHandler
|
|
||||||
from urllib.parse import parse_qs, unquote, urlsplit
|
|
||||||
|
|
||||||
-from .compat import decode_from_bytes, do_the_magic, encode_to_bytes
|
|
||||||
-from .mocket import Mocket, MocketEntry
|
|
||||||
+from httptools.parser import HttpRequestParser
|
|
||||||
|
|
||||||
-try:
|
|
||||||
- from http_parser.parser import HttpParser
|
|
||||||
-except ImportError:
|
|
||||||
- from http_parser.pyparser import HttpParser
|
|
||||||
+from .compat import ENCODING, decode_from_bytes, do_the_magic, encode_to_bytes
|
|
||||||
+from .mocket import Mocket, MocketEntry
|
|
||||||
|
|
||||||
try:
|
|
||||||
import magic
|
|
||||||
@@ -21,31 +18,59 @@ STATUS = {k: v[0] for k, v in BaseHTTPRe
|
|
||||||
CRLF = "\r\n"
|
|
||||||
|
|
||||||
|
|
||||||
+class Protocol:
|
|
||||||
+ def __init__(self):
|
|
||||||
+ self.url = None
|
|
||||||
+ self.body = None
|
|
||||||
+ self.headers = {}
|
|
||||||
+
|
|
||||||
+ def on_header(self, name: bytes, value: bytes):
|
|
||||||
+ self.headers[name.decode("ascii")] = value.decode("ascii")
|
|
||||||
+
|
|
||||||
+ def on_body(self, body: bytes):
|
|
||||||
+ try:
|
|
||||||
+ self.body = body.decode(ENCODING)
|
|
||||||
+ except UnicodeDecodeError:
|
|
||||||
+ self.body = body
|
|
||||||
+
|
|
||||||
+ def on_url(self, url: bytes):
|
|
||||||
+ self.url = url.decode("ascii")
|
|
||||||
+
|
|
||||||
+
|
|
||||||
class Request:
|
|
||||||
- parser = None
|
|
||||||
- _body = None
|
|
||||||
+ _protocol = None
|
|
||||||
+ _parser = None
|
|
||||||
|
|
||||||
def __init__(self, data):
|
|
||||||
- self.parser = HttpParser()
|
|
||||||
- self.parser.execute(data, len(data))
|
|
||||||
-
|
|
||||||
- self.method = self.parser.get_method()
|
|
||||||
- self.path = self.parser.get_path()
|
|
||||||
- self.headers = self.parser.get_headers()
|
|
||||||
- self.querystring = parse_qs(
|
|
||||||
- unquote(self.parser.get_query_string()), keep_blank_values=True
|
|
||||||
- )
|
|
||||||
- if self.querystring:
|
|
||||||
- self.path += "?{}".format(self.parser.get_query_string())
|
|
||||||
+ self._protocol = Protocol()
|
|
||||||
+ self._parser = HttpRequestParser(self._protocol)
|
|
||||||
+ self.add_data(data)
|
|
||||||
|
|
||||||
def add_data(self, data):
|
|
||||||
- self.parser.execute(data, len(data))
|
|
||||||
+ self._parser.feed_data(data)
|
|
||||||
+
|
|
||||||
+ @property
|
|
||||||
+ def method(self):
|
|
||||||
+ return self._parser.get_method().decode("ascii")
|
|
||||||
+
|
|
||||||
+ @property
|
|
||||||
+ def path(self):
|
|
||||||
+ return self._protocol.url
|
|
||||||
+
|
|
||||||
+ @property
|
|
||||||
+ def headers(self):
|
|
||||||
+ return self._protocol.headers
|
|
||||||
+
|
|
||||||
+ @property
|
|
||||||
+ def querystring(self):
|
|
||||||
+ parts = self._protocol.url.split("?", 1)
|
|
||||||
+ if len(parts) == 2:
|
|
||||||
+ return parse_qs(unquote(parts[1]), keep_blank_values=True)
|
|
||||||
+ return {}
|
|
||||||
|
|
||||||
@property
|
|
||||||
def body(self):
|
|
||||||
- if self._body is None:
|
|
||||||
- self._body = decode_from_bytes(self.parser.recv_body())
|
|
||||||
- return self._body
|
|
||||||
+ return self._protocol.body
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return "{} - {} - {}".format(self.method, self.path, self.headers)
|
|
||||||
Index: mocket-3.10.9/mocket/plugins/httpretty/__init__.py
|
|
||||||
===================================================================
|
|
||||||
--- mocket-3.10.9.orig/mocket/plugins/httpretty/__init__.py
|
|
||||||
+++ mocket-3.10.9/mocket/plugins/httpretty/__init__.py
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
from mocket import Mocket, mocketize
|
|
||||||
from mocket.async_mocket import async_mocketize
|
|
||||||
-from mocket.compat import byte_type, text_type
|
|
||||||
+from mocket.compat import ENCODING, byte_type, text_type
|
|
||||||
from mocket.mockhttp import Entry as MocketHttpEntry
|
|
||||||
from mocket.mockhttp import Request as MocketHttpRequest
|
|
||||||
from mocket.mockhttp import Response as MocketHttpResponse
|
|
||||||
@@ -13,9 +13,11 @@ def httprettifier_headers(headers):
|
|
||||||
class Request(MocketHttpRequest):
|
|
||||||
@property
|
|
||||||
def body(self):
|
|
||||||
- if self._body is None:
|
|
||||||
- self._body = self.parser.recv_body()
|
|
||||||
- return self._body
|
|
||||||
+ return super().body.encode(ENCODING)
|
|
||||||
+
|
|
||||||
+ @property
|
|
||||||
+ def headers(self):
|
|
||||||
+ return httprettifier_headers(super().headers)
|
|
||||||
|
|
||||||
|
|
||||||
class Response(MocketHttpResponse):
|
|
||||||
Index: mocket-3.10.9/tests/main/test_http.py
|
|
||||||
===================================================================
|
|
||||||
--- mocket-3.10.9.orig/tests/main/test_http.py
|
|
||||||
+++ mocket-3.10.9/tests/main/test_http.py
|
|
||||||
@@ -23,7 +23,7 @@ class HttpTestCase(TestCase):
|
|
||||||
def assertEqualHeaders(self, first, second, msg=None):
|
|
||||||
first = {k.lower(): v for k, v in first.items()}
|
|
||||||
second = {k.lower(): v for k, v in second.items()}
|
|
||||||
- self.assertEqual(first, second, msg)
|
|
||||||
+ self.assertDictEqual(first, second, msg)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif('os.getenv("SKIP_TRUE_HTTP", False)')
|
|
@ -1,238 +0,0 @@
|
|||||||
From 5e0d8a8b75280372536bc85ea44b82e0acc841c4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giorgio Salluzzo <giorgio.salluzzo@gmail.com>
|
|
||||||
Date: Mon, 5 Dec 2022 01:08:23 +0100
|
|
||||||
Subject: [PATCH 08/15] Disabling tests for `pook` when testing Python 3.11
|
|
||||||
|
|
||||||
---
|
|
||||||
mocket/plugins/pook_mock_engine.py | 147 +++++++++++++++--------------
|
|
||||||
setup.py | 1 +
|
|
||||||
tests/main/test_pook.py | 47 ++++-----
|
|
||||||
3 files changed, 102 insertions(+), 93 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/mocket/plugins/pook_mock_engine.py b/mocket/plugins/pook_mock_engine.py
|
|
||||||
index 5b1d207..8df8776 100644
|
|
||||||
--- a/mocket/plugins/pook_mock_engine.py
|
|
||||||
+++ b/mocket/plugins/pook_mock_engine.py
|
|
||||||
@@ -1,71 +1,76 @@
|
|
||||||
-from pook.engine import MockEngine
|
|
||||||
-from pook.interceptors.base import BaseInterceptor
|
|
||||||
-
|
|
||||||
-from mocket.mocket import Mocket
|
|
||||||
-from mocket.mockhttp import Entry, Response
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-class MocketPookEntry(Entry):
|
|
||||||
- pook_request = None
|
|
||||||
- pook_engine = None
|
|
||||||
-
|
|
||||||
- def can_handle(self, data):
|
|
||||||
- can_handle = super(MocketPookEntry, self).can_handle(data)
|
|
||||||
-
|
|
||||||
- if can_handle:
|
|
||||||
- self.pook_engine.match(self.pook_request)
|
|
||||||
- return can_handle
|
|
||||||
-
|
|
||||||
- @classmethod
|
|
||||||
- def single_register(cls, method, uri, body='', status=200, headers=None, match_querystring=True):
|
|
||||||
- entry = cls(
|
|
||||||
- uri, method, Response(
|
|
||||||
- body=body, status=status, headers=headers
|
|
||||||
- ), match_querystring=match_querystring
|
|
||||||
- )
|
|
||||||
- Mocket.register(entry)
|
|
||||||
- return entry
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-class MocketInterceptor(BaseInterceptor):
|
|
||||||
- @staticmethod
|
|
||||||
- def activate():
|
|
||||||
- Mocket.disable()
|
|
||||||
- Mocket.enable()
|
|
||||||
-
|
|
||||||
- @staticmethod
|
|
||||||
- def disable():
|
|
||||||
- Mocket.disable()
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-class MocketEngine(MockEngine):
|
|
||||||
-
|
|
||||||
- def __init__(self, engine):
|
|
||||||
- def mocket_mock_fun(*args, **kwargs):
|
|
||||||
- mock = self.pook_mock_fun(*args, **kwargs)
|
|
||||||
-
|
|
||||||
- request = mock._request
|
|
||||||
- method = request.method
|
|
||||||
- url = request.rawurl
|
|
||||||
-
|
|
||||||
- response = mock._response
|
|
||||||
- body = response._body
|
|
||||||
- status = response._status
|
|
||||||
- headers = response._headers
|
|
||||||
-
|
|
||||||
- entry = MocketPookEntry.single_register(method, url, body, status, headers)
|
|
||||||
- entry.pook_engine = self.engine
|
|
||||||
- entry.pook_request = request
|
|
||||||
-
|
|
||||||
- return mock
|
|
||||||
-
|
|
||||||
- # Store plugins engine
|
|
||||||
- self.engine = engine
|
|
||||||
- # Store HTTP client interceptors
|
|
||||||
- self.interceptors = []
|
|
||||||
- # Self-register MocketInterceptor
|
|
||||||
- self.add_interceptor(MocketInterceptor)
|
|
||||||
-
|
|
||||||
- # mocking pook.mock()
|
|
||||||
- self.pook_mock_fun = self.engine.mock
|
|
||||||
- self.engine.mock = mocket_mock_fun
|
|
||||||
+import platform
|
|
||||||
+
|
|
||||||
+if not platform.python_version().startswith("3.11."):
|
|
||||||
+ # it looks like `pook` is not compatible with Python 3.11
|
|
||||||
+ from pook.engine import MockEngine
|
|
||||||
+ from pook.interceptors.base import BaseInterceptor
|
|
||||||
+
|
|
||||||
+ from mocket.mocket import Mocket
|
|
||||||
+ from mocket.mockhttp import Entry, Response
|
|
||||||
+
|
|
||||||
+ class MocketPookEntry(Entry):
|
|
||||||
+ pook_request = None
|
|
||||||
+ pook_engine = None
|
|
||||||
+
|
|
||||||
+ def can_handle(self, data):
|
|
||||||
+ can_handle = super(MocketPookEntry, self).can_handle(data)
|
|
||||||
+
|
|
||||||
+ if can_handle:
|
|
||||||
+ self.pook_engine.match(self.pook_request)
|
|
||||||
+ return can_handle
|
|
||||||
+
|
|
||||||
+ @classmethod
|
|
||||||
+ def single_register(
|
|
||||||
+ cls, method, uri, body="", status=200, headers=None, match_querystring=True
|
|
||||||
+ ):
|
|
||||||
+ entry = cls(
|
|
||||||
+ uri,
|
|
||||||
+ method,
|
|
||||||
+ Response(body=body, status=status, headers=headers),
|
|
||||||
+ match_querystring=match_querystring,
|
|
||||||
+ )
|
|
||||||
+ Mocket.register(entry)
|
|
||||||
+ return entry
|
|
||||||
+
|
|
||||||
+ class MocketInterceptor(BaseInterceptor):
|
|
||||||
+ @staticmethod
|
|
||||||
+ def activate():
|
|
||||||
+ Mocket.disable()
|
|
||||||
+ Mocket.enable()
|
|
||||||
+
|
|
||||||
+ @staticmethod
|
|
||||||
+ def disable():
|
|
||||||
+ Mocket.disable()
|
|
||||||
+
|
|
||||||
+ class MocketEngine(MockEngine):
|
|
||||||
+ def __init__(self, engine):
|
|
||||||
+ def mocket_mock_fun(*args, **kwargs):
|
|
||||||
+ mock = self.pook_mock_fun(*args, **kwargs)
|
|
||||||
+
|
|
||||||
+ request = mock._request
|
|
||||||
+ method = request.method
|
|
||||||
+ url = request.rawurl
|
|
||||||
+
|
|
||||||
+ response = mock._response
|
|
||||||
+ body = response._body
|
|
||||||
+ status = response._status
|
|
||||||
+ headers = response._headers
|
|
||||||
+
|
|
||||||
+ entry = MocketPookEntry.single_register(
|
|
||||||
+ method, url, body, status, headers
|
|
||||||
+ )
|
|
||||||
+ entry.pook_engine = self.engine
|
|
||||||
+ entry.pook_request = request
|
|
||||||
+
|
|
||||||
+ return mock
|
|
||||||
+
|
|
||||||
+ # Store plugins engine
|
|
||||||
+ self.engine = engine
|
|
||||||
+ # Store HTTP client interceptors
|
|
||||||
+ self.interceptors = []
|
|
||||||
+ # Self-register MocketInterceptor
|
|
||||||
+ self.add_interceptor(MocketInterceptor)
|
|
||||||
+
|
|
||||||
+ # mocking pook.mock()
|
|
||||||
+ self.pook_mock_fun = self.engine.mock
|
|
||||||
+ self.engine.mock = mocket_mock_fun
|
|
||||||
diff --git a/setup.py b/setup.py
|
|
||||||
index 544e624..145fced 100644
|
|
||||||
--- a/setup.py
|
|
||||||
+++ b/setup.py
|
|
||||||
@@ -57,6 +57,7 @@ setup(
|
|
||||||
"Programming Language :: Python :: 3.8",
|
|
||||||
"Programming Language :: Python :: 3.9",
|
|
||||||
"Programming Language :: Python :: 3.10",
|
|
||||||
+ "Programming Language :: Python :: 3.11",
|
|
||||||
"Programming Language :: Python :: Implementation :: CPython",
|
|
||||||
"Programming Language :: Python :: Implementation :: PyPy",
|
|
||||||
"Topic :: Software Development",
|
|
||||||
diff --git a/tests/main/test_pook.py b/tests/main/test_pook.py
|
|
||||||
index 2d95d3d..2207e8f 100644
|
|
||||||
--- a/tests/main/test_pook.py
|
|
||||||
+++ b/tests/main/test_pook.py
|
|
||||||
@@ -1,30 +1,33 @@
|
|
||||||
-import pook
|
|
||||||
-import requests
|
|
||||||
+import platform
|
|
||||||
|
|
||||||
-from mocket.plugins.pook_mock_engine import MocketEngine
|
|
||||||
+if not platform.python_version().startswith("3.11."):
|
|
||||||
+ # it looks like `pook` is not compatible with Python 3.11
|
|
||||||
+ import pook
|
|
||||||
+ import requests
|
|
||||||
|
|
||||||
-pook.set_mock_engine(MocketEngine)
|
|
||||||
+ from mocket.plugins.pook_mock_engine import MocketEngine
|
|
||||||
|
|
||||||
+ pook.set_mock_engine(MocketEngine)
|
|
||||||
|
|
||||||
-@pook.on
|
|
||||||
-def test_pook_engine():
|
|
||||||
+ @pook.on
|
|
||||||
+ def test_pook_engine():
|
|
||||||
|
|
||||||
- url = "http://twitter.com/api/1/foobar"
|
|
||||||
- status = 404
|
|
||||||
- response_json = {"error": "foo"}
|
|
||||||
+ url = "http://twitter.com/api/1/foobar"
|
|
||||||
+ status = 404
|
|
||||||
+ response_json = {"error": "foo"}
|
|
||||||
|
|
||||||
- mock = pook.get(
|
|
||||||
- url,
|
|
||||||
- headers={"content-type": "application/json"},
|
|
||||||
- reply=status,
|
|
||||||
- response_json=response_json,
|
|
||||||
- )
|
|
||||||
- mock.persist()
|
|
||||||
+ mock = pook.get(
|
|
||||||
+ url,
|
|
||||||
+ headers={"content-type": "application/json"},
|
|
||||||
+ reply=status,
|
|
||||||
+ response_json=response_json,
|
|
||||||
+ )
|
|
||||||
+ mock.persist()
|
|
||||||
|
|
||||||
- requests.get(url)
|
|
||||||
- assert mock.calls == 1
|
|
||||||
+ requests.get(url)
|
|
||||||
+ assert mock.calls == 1
|
|
||||||
|
|
||||||
- resp = requests.get(url)
|
|
||||||
- assert resp.status_code == status
|
|
||||||
- assert resp.json() == response_json
|
|
||||||
- assert mock.calls == 2
|
|
||||||
+ resp = requests.get(url)
|
|
||||||
+ assert resp.status_code == status
|
|
||||||
+ assert resp.json() == response_json
|
|
||||||
+ assert mock.calls == 2
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
|
@ -1,188 +0,0 @@
|
|||||||
From 10cf45b071776cd36f9c7070f5d47a26ea010d7d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giorgio Salluzzo <giorgio.salluzzo@gmail.com>
|
|
||||||
Date: Sat, 17 Dec 2022 12:09:48 +0100
|
|
||||||
Subject: [PATCH 09/15] Removing DeprecationWarning all over the place.
|
|
||||||
|
|
||||||
---
|
|
||||||
README.rst | 14 +++++++-------
|
|
||||||
tests/main/test_http_aiohttp.py | 16 ++++++++--------
|
|
||||||
tests/tests37/test_asyncio.py | 2 +-
|
|
||||||
tests/tests38/test_http_aiohttp.py | 10 +++++-----
|
|
||||||
4 files changed, 21 insertions(+), 21 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/README.rst b/README.rst
|
|
||||||
index 67cc956..a810dc1 100644
|
|
||||||
--- a/README.rst
|
|
||||||
+++ b/README.rst
|
|
||||||
@@ -249,12 +249,12 @@ Example:
|
|
||||||
|
|
||||||
async def main(l):
|
|
||||||
async with aiohttp.ClientSession(loop=l) as session:
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 200
|
|
||||||
assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
|
|
||||||
- loop = asyncio.get_event_loop()
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
loop.set_debug(True)
|
|
||||||
loop.run_until_complete(main(loop))
|
|
||||||
|
|
||||||
@@ -278,17 +278,17 @@ Example:
|
|
||||||
|
|
||||||
async def main(l):
|
|
||||||
async with aiohttp.ClientSession(loop=l) as session:
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 404
|
|
||||||
assert await get_response.text() == body
|
|
||||||
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.post(url, data=body * 6) as post_response:
|
|
||||||
assert post_response.status == 201
|
|
||||||
assert await post_response.text() == body * 2
|
|
||||||
|
|
||||||
- loop = asyncio.get_event_loop()
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
loop.run_until_complete(main(loop))
|
|
||||||
|
|
||||||
# or again with a unittest.IsolatedAsyncioTestCase
|
|
||||||
@@ -303,12 +303,12 @@ Example:
|
|
||||||
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 404
|
|
||||||
assert await get_response.text() == body
|
|
||||||
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.post(url, data=body * 6) as post_response:
|
|
||||||
assert post_response.status == 201
|
|
||||||
assert await post_response.text() == body * 2
|
|
||||||
diff --git a/tests/main/test_http_aiohttp.py b/tests/main/test_http_aiohttp.py
|
|
||||||
index 076fc93..6cfd2d8 100644
|
|
||||||
--- a/tests/main/test_http_aiohttp.py
|
|
||||||
+++ b/tests/main/test_http_aiohttp.py
|
|
||||||
@@ -20,19 +20,19 @@ class AioHttpEntryTestCase(TestCase):
|
|
||||||
|
|
||||||
async def main(_loop):
|
|
||||||
async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 404
|
|
||||||
assert await get_response.text() == body
|
|
||||||
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.post(url, data=body * 6) as post_response:
|
|
||||||
assert post_response.status == 201
|
|
||||||
assert await post_response.text() == body * 2
|
|
||||||
assert Mocket.last_request().method == "POST"
|
|
||||||
assert Mocket.last_request().body == body * 6
|
|
||||||
|
|
||||||
- loop = asyncio.get_event_loop()
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
loop.set_debug(True)
|
|
||||||
loop.run_until_complete(main(loop))
|
|
||||||
self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
@@ -46,17 +46,17 @@ class AioHttpEntryTestCase(TestCase):
|
|
||||||
|
|
||||||
async def main(_loop):
|
|
||||||
async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 404
|
|
||||||
assert await get_response.text() == body
|
|
||||||
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.post(url, data=body * 6) as post_response:
|
|
||||||
assert post_response.status == 201
|
|
||||||
assert await post_response.text() == body * 2
|
|
||||||
|
|
||||||
- loop = asyncio.get_event_loop()
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
loop.set_debug(True)
|
|
||||||
loop.run_until_complete(main(loop))
|
|
||||||
self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
@@ -72,11 +72,11 @@ class AioHttpEntryTestCase(TestCase):
|
|
||||||
|
|
||||||
async def main(_loop):
|
|
||||||
async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 200
|
|
||||||
assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
|
|
||||||
- loop = asyncio.get_event_loop()
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
loop.set_debug(True)
|
|
||||||
loop.run_until_complete(main(loop))
|
|
||||||
diff --git a/tests/tests37/test_asyncio.py b/tests/tests37/test_asyncio.py
|
|
||||||
index 9e6e0d4..66f8cc9 100644
|
|
||||||
--- a/tests/tests37/test_asyncio.py
|
|
||||||
+++ b/tests/tests37/test_asyncio.py
|
|
||||||
@@ -33,7 +33,7 @@ class AsyncIoRecordTestCase(TestCase):
|
|
||||||
writer.close()
|
|
||||||
await writer.wait_closed()
|
|
||||||
|
|
||||||
- loop = asyncio.get_event_loop()
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
loop.set_debug(True)
|
|
||||||
loop.run_until_complete(test_asyncio_connection())
|
|
||||||
|
|
||||||
diff --git a/tests/tests38/test_http_aiohttp.py b/tests/tests38/test_http_aiohttp.py
|
|
||||||
index fe3817f..348a7a0 100644
|
|
||||||
--- a/tests/tests38/test_http_aiohttp.py
|
|
||||||
+++ b/tests/tests38/test_http_aiohttp.py
|
|
||||||
@@ -19,12 +19,12 @@ class AioHttpEntryTestCase(IsolatedAsyncioTestCase):
|
|
||||||
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 404
|
|
||||||
assert await get_response.text() == body
|
|
||||||
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.post(url, data=body * 6) as post_response:
|
|
||||||
assert post_response.status == 201
|
|
||||||
assert await post_response.text() == body * 2
|
|
||||||
@@ -41,12 +41,12 @@ class AioHttpEntryTestCase(IsolatedAsyncioTestCase):
|
|
||||||
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 404
|
|
||||||
assert await get_response.text() == body
|
|
||||||
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.post(url, data=body * 6) as post_response:
|
|
||||||
assert post_response.status == 201
|
|
||||||
assert await post_response.text() == body * 2
|
|
||||||
@@ -63,7 +63,7 @@ class AioHttpEntryTestCase(IsolatedAsyncioTestCase):
|
|
||||||
)
|
|
||||||
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
- with async_timeout.timeout(3):
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 200
|
|
||||||
assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
|
@ -1,170 +0,0 @@
|
|||||||
From 77f91f7fcff89291e16c2f5b9b7d904b975e1bbe Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giorgio Salluzzo <giorgio.salluzzo@gmail.com>
|
|
||||||
Date: Sat, 17 Dec 2022 12:39:31 +0100
|
|
||||||
Subject: [PATCH 10/15] Python 3.11 needs an async decorator.
|
|
||||||
|
|
||||||
---
|
|
||||||
tests/main/test_http_aiohttp.py | 127 +++++++++++++++++---------------
|
|
||||||
1 file changed, 66 insertions(+), 61 deletions(-)
|
|
||||||
|
|
||||||
Index: mocket-3.10.9/tests/main/test_http_aiohttp.py
|
|
||||||
===================================================================
|
|
||||||
--- mocket-3.10.9.orig/tests/main/test_http_aiohttp.py
|
|
||||||
+++ mocket-3.10.9/tests/main/test_http_aiohttp.py
|
|
||||||
@@ -1,5 +1,6 @@
|
|
||||||
import asyncio
|
|
||||||
import json
|
|
||||||
+import platform
|
|
||||||
from unittest import TestCase
|
|
||||||
|
|
||||||
import aiohttp
|
|
||||||
@@ -9,74 +10,78 @@ from mocket.mocket import Mocket, mocket
|
|
||||||
from mocket.mockhttp import Entry
|
|
||||||
from mocket.plugins.httpretty import HTTPretty, httprettified
|
|
||||||
|
|
||||||
-
|
|
||||||
-class AioHttpEntryTestCase(TestCase):
|
|
||||||
- @mocketize
|
|
||||||
- def test_http_session(self):
|
|
||||||
- url = "http://httpbin.org/ip"
|
|
||||||
- body = "asd" * 100
|
|
||||||
- Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
- Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
-
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
- assert Mocket.last_request().method == "POST"
|
|
||||||
- assert Mocket.last_request().body == body * 6
|
|
||||||
-
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(main(loop))
|
|
||||||
- self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
-
|
|
||||||
- @mocketize
|
|
||||||
- def test_https_session(self):
|
|
||||||
- url = "https://httpbin.org/ip"
|
|
||||||
- body = "asd" * 100
|
|
||||||
- Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
- Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
-
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
-
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(main(loop))
|
|
||||||
- self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
-
|
|
||||||
- @httprettified
|
|
||||||
- def test_httprettish_session(self):
|
|
||||||
- url = "https://httpbin.org/ip"
|
|
||||||
- HTTPretty.register_uri(
|
|
||||||
- HTTPretty.GET,
|
|
||||||
- url,
|
|
||||||
- body=json.dumps(dict(origin="127.0.0.1")),
|
|
||||||
- )
|
|
||||||
-
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 200
|
|
||||||
- assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
-
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(main(loop))
|
|
||||||
+if not platform.python_version().startswith("3.11."):
|
|
||||||
+ # Python 3.11 needs async decorators, or aiohttp
|
|
||||||
+ # will fail with "Cannot write to closing transport"
|
|
||||||
+ class AioHttpEntryTestCase(TestCase):
|
|
||||||
+ @mocketize
|
|
||||||
+ def test_http_session(self):
|
|
||||||
+ url = "http://httpbin.org/ip"
|
|
||||||
+ body = "asd" * 100
|
|
||||||
+ Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
+ Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
+
|
|
||||||
+ async def main(_loop):
|
|
||||||
+ async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
+ assert Mocket.last_request().method == "POST"
|
|
||||||
+ assert Mocket.last_request().body == body * 6
|
|
||||||
+
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
+ loop.set_debug(True)
|
|
||||||
+ loop.run_until_complete(main(loop))
|
|
||||||
+ self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
+
|
|
||||||
+ @mocketize
|
|
||||||
+ def test_https_session(self):
|
|
||||||
+ url = "https://httpbin.org/ip"
|
|
||||||
+ body = "asd" * 100
|
|
||||||
+ Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
+ Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
+
|
|
||||||
+ async def main(_loop):
|
|
||||||
+ async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
+
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
+ loop.set_debug(True)
|
|
||||||
+ loop.run_until_complete(main(loop))
|
|
||||||
+ self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
+
|
|
||||||
+ @httprettified
|
|
||||||
+ def test_httprettish_session(self):
|
|
||||||
+ url = "https://httpbin.org/ip"
|
|
||||||
+ HTTPretty.register_uri(
|
|
||||||
+ HTTPretty.GET,
|
|
||||||
+ url,
|
|
||||||
+ body=json.dumps(dict(origin="127.0.0.1")),
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+ async def main(_loop):
|
|
||||||
+ async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
+ async with async_timeout.timeout(3):
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 200
|
|
||||||
+ assert (
|
|
||||||
+ await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
+ loop.set_debug(True)
|
|
||||||
+ loop.run_until_complete(main(loop))
|
|
@ -1,354 +0,0 @@
|
|||||||
From 6719547e1d3d5bb672258bc30fed835ddc659ce8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giorgio Salluzzo <giorgio.salluzzo@gmail.com>
|
|
||||||
Date: Sun, 18 Dec 2022 00:44:02 +0100
|
|
||||||
Subject: [PATCH 12/15] Removing `async-timeout` dependency.
|
|
||||||
|
|
||||||
---
|
|
||||||
Pipfile | 1 -
|
|
||||||
README.rst | 54 ++++++------
|
|
||||||
tests/main/test_http_aiohttp.py | 131 ++++++++++++++---------------
|
|
||||||
tests/tests38/test_http_aiohttp.py | 48 +++++------
|
|
||||||
4 files changed, 113 insertions(+), 121 deletions(-)
|
|
||||||
|
|
||||||
Index: mocket-3.10.9/README.rst
|
|
||||||
===================================================================
|
|
||||||
--- mocket-3.10.9.orig/README.rst
|
|
||||||
+++ mocket-3.10.9/README.rst
|
|
||||||
@@ -231,7 +231,6 @@ Example:
|
|
||||||
|
|
||||||
import aiohttp
|
|
||||||
import asyncio
|
|
||||||
- import async_timeout
|
|
||||||
from unittest import TestCase
|
|
||||||
|
|
||||||
from mocket.plugins.httpretty import httpretty, httprettified
|
|
||||||
@@ -248,11 +247,12 @@ Example:
|
|
||||||
)
|
|
||||||
|
|
||||||
async def main(l):
|
|
||||||
- async with aiohttp.ClientSession(loop=l) as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 200
|
|
||||||
- assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
+ async with aiohttp.ClientSession(
|
|
||||||
+ loop=l, timeout=aiohttp.ClientTimeout(total=3)
|
|
||||||
+ ) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 200
|
|
||||||
+ assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
|
|
||||||
loop = asyncio.new_event_loop()
|
|
||||||
loop.set_debug(True)
|
|
||||||
@@ -277,16 +277,16 @@ Example:
|
|
||||||
Entry.single_register(Entry.POST, url, body=body*2, status=201)
|
|
||||||
|
|
||||||
async def main(l):
|
|
||||||
- async with aiohttp.ClientSession(loop=l) as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
+ async with aiohttp.ClientSession(
|
|
||||||
+ loop=l, timeout=aiohttp.ClientTimeout(total=3)
|
|
||||||
+ ) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
|
|
||||||
loop = asyncio.new_event_loop()
|
|
||||||
loop.run_until_complete(main(loop))
|
|
||||||
@@ -302,18 +302,18 @@ Example:
|
|
||||||
Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
|
|
||||||
- async with aiohttp.ClientSession() as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
- assert Mocket.last_request().method == 'POST'
|
|
||||||
- assert Mocket.last_request().body == body * 6
|
|
||||||
+ async with aiohttp.ClientSession(
|
|
||||||
+ timeout=aiohttp.ClientTimeout(total=3)
|
|
||||||
+ ) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
+ assert Mocket.last_request().method == 'POST'
|
|
||||||
+ assert Mocket.last_request().body == body * 6
|
|
||||||
|
|
||||||
|
|
||||||
Works well with others
|
|
||||||
Index: mocket-3.10.9/tests/main/test_http_aiohttp.py
|
|
||||||
===================================================================
|
|
||||||
--- mocket-3.10.9.orig/tests/main/test_http_aiohttp.py
|
|
||||||
+++ mocket-3.10.9/tests/main/test_http_aiohttp.py
|
|
||||||
@@ -1,87 +1,84 @@
|
|
||||||
import asyncio
|
|
||||||
import json
|
|
||||||
-import platform
|
|
||||||
from unittest import TestCase
|
|
||||||
|
|
||||||
import aiohttp
|
|
||||||
-import async_timeout
|
|
||||||
|
|
||||||
from mocket.mocket import Mocket, mocketize
|
|
||||||
from mocket.mockhttp import Entry
|
|
||||||
from mocket.plugins.httpretty import HTTPretty, httprettified
|
|
||||||
|
|
||||||
-if not platform.python_version().startswith("3.11."):
|
|
||||||
- # Python 3.11 needs async decorators, or aiohttp
|
|
||||||
- # will fail with "Cannot write to closing transport"
|
|
||||||
- class AioHttpEntryTestCase(TestCase):
|
|
||||||
- @mocketize
|
|
||||||
- def test_http_session(self):
|
|
||||||
- url = "http://httpbin.org/ip"
|
|
||||||
- body = "asd" * 100
|
|
||||||
- Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
- Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
-
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
- assert Mocket.last_request().method == "POST"
|
|
||||||
- assert Mocket.last_request().body == body * 6
|
|
||||||
-
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(main(loop))
|
|
||||||
- self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
-
|
|
||||||
- @mocketize
|
|
||||||
- def test_https_session(self):
|
|
||||||
- url = "https://httpbin.org/ip"
|
|
||||||
- body = "asd" * 100
|
|
||||||
- Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
- Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
-
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
-
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(main(loop))
|
|
||||||
- self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
-
|
|
||||||
- @httprettified
|
|
||||||
- def test_httprettish_session(self):
|
|
||||||
- url = "https://httpbin.org/ip"
|
|
||||||
- HTTPretty.register_uri(
|
|
||||||
- HTTPretty.GET,
|
|
||||||
- url,
|
|
||||||
- body=json.dumps(dict(origin="127.0.0.1")),
|
|
||||||
- )
|
|
||||||
-
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(loop=_loop) as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 200
|
|
||||||
- assert (
|
|
||||||
- await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
- )
|
|
||||||
-
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(main(loop))
|
|
||||||
+
|
|
||||||
+class AioHttpEntryTestCase(TestCase):
|
|
||||||
+ timeout = aiohttp.ClientTimeout(total=3)
|
|
||||||
+
|
|
||||||
+ @mocketize
|
|
||||||
+ def test_http_session(self):
|
|
||||||
+ url = "http://httpbin.org/ip"
|
|
||||||
+ body = "asd" * 100
|
|
||||||
+ Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
+ Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
+
|
|
||||||
+ async def main(_loop):
|
|
||||||
+ async with aiohttp.ClientSession(
|
|
||||||
+ loop=_loop, timeout=self.timeout
|
|
||||||
+ ) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
+ assert Mocket.last_request().method == "POST"
|
|
||||||
+ assert Mocket.last_request().body == body * 6
|
|
||||||
+
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
+ loop.set_debug(True)
|
|
||||||
+ loop.run_until_complete(main(loop))
|
|
||||||
+ self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
+
|
|
||||||
+ @mocketize
|
|
||||||
+ def test_https_session(self):
|
|
||||||
+ url = "https://httpbin.org/ip"
|
|
||||||
+ body = "asd" * 100
|
|
||||||
+ Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
+ Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
+
|
|
||||||
+ async def main(_loop):
|
|
||||||
+ async with aiohttp.ClientSession(
|
|
||||||
+ loop=_loop, timeout=self.timeout
|
|
||||||
+ ) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
+
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
+ loop.set_debug(True)
|
|
||||||
+ loop.run_until_complete(main(loop))
|
|
||||||
+ self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
+
|
|
||||||
+ @httprettified
|
|
||||||
+ def test_httprettish_session(self):
|
|
||||||
+ url = "https://httpbin.org/ip"
|
|
||||||
+ HTTPretty.register_uri(
|
|
||||||
+ HTTPretty.GET,
|
|
||||||
+ url,
|
|
||||||
+ body=json.dumps(dict(origin="127.0.0.1")),
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+ async def main(_loop):
|
|
||||||
+ async with aiohttp.ClientSession(
|
|
||||||
+ loop=_loop, timeout=self.timeout
|
|
||||||
+ ) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 200
|
|
||||||
+ assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
+
|
|
||||||
+ loop = asyncio.new_event_loop()
|
|
||||||
+ loop.set_debug(True)
|
|
||||||
+ loop.run_until_complete(main(loop))
|
|
||||||
Index: mocket-3.10.9/tests/tests38/test_http_aiohttp.py
|
|
||||||
===================================================================
|
|
||||||
--- mocket-3.10.9.orig/tests/tests38/test_http_aiohttp.py
|
|
||||||
+++ mocket-3.10.9/tests/tests38/test_http_aiohttp.py
|
|
||||||
@@ -2,7 +2,6 @@ import json
|
|
||||||
from unittest import IsolatedAsyncioTestCase
|
|
||||||
|
|
||||||
import aiohttp
|
|
||||||
-import async_timeout
|
|
||||||
|
|
||||||
from mocket.async_mocket import async_mocketize
|
|
||||||
from mocket.mocket import Mocket
|
|
||||||
@@ -11,6 +10,8 @@ from mocket.plugins.httpretty import HTT
|
|
||||||
|
|
||||||
|
|
||||||
class AioHttpEntryTestCase(IsolatedAsyncioTestCase):
|
|
||||||
+ timeout = aiohttp.ClientTimeout(total=3)
|
|
||||||
+
|
|
||||||
@async_mocketize
|
|
||||||
async def test_http_session(self):
|
|
||||||
url = "http://httpbin.org/ip"
|
|
||||||
@@ -18,18 +19,16 @@ class AioHttpEntryTestCase(IsolatedAsync
|
|
||||||
Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
|
|
||||||
- async with aiohttp.ClientSession() as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
- assert Mocket.last_request().method == "POST"
|
|
||||||
- assert Mocket.last_request().body == body * 6
|
|
||||||
+ async with aiohttp.ClientSession(timeout=self.timeout) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
+ assert Mocket.last_request().method == "POST"
|
|
||||||
+ assert Mocket.last_request().body == body * 6
|
|
||||||
|
|
||||||
self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
|
|
||||||
@@ -40,16 +39,14 @@ class AioHttpEntryTestCase(IsolatedAsync
|
|
||||||
Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
|
|
||||||
- async with aiohttp.ClientSession() as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
+ async with aiohttp.ClientSession(timeout=self.timeout) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
|
|
||||||
self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
|
|
||||||
@@ -62,8 +59,7 @@ class AioHttpEntryTestCase(IsolatedAsync
|
|
||||||
body=json.dumps(dict(origin="127.0.0.1")),
|
|
||||||
)
|
|
||||||
|
|
||||||
- async with aiohttp.ClientSession() as session:
|
|
||||||
- async with async_timeout.timeout(3):
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 200
|
|
||||||
- assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
+ async with aiohttp.ClientSession(timeout=self.timeout) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 200
|
|
||||||
+ assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
@ -1,95 +0,0 @@
|
|||||||
From 63120c44526e31e22c16c9d8029a715eef38e145 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giorgio Salluzzo <giorgio.salluzzo@gmail.com>
|
|
||||||
Date: Tue, 27 Dec 2022 15:38:02 +0100
|
|
||||||
Subject: [PATCH 13/15] Refactoring using `event_loop` fixture.
|
|
||||||
|
|
||||||
---
|
|
||||||
tests/main/test_http_aiohttp.py | 19 ++++++-------------
|
|
||||||
tests/tests37/test_asyncio.py | 6 ++----
|
|
||||||
2 files changed, 8 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/main/test_http_aiohttp.py b/tests/main/test_http_aiohttp.py
|
|
||||||
index a98cb37..ab72397 100644
|
|
||||||
--- a/tests/main/test_http_aiohttp.py
|
|
||||||
+++ b/tests/main/test_http_aiohttp.py
|
|
||||||
@@ -1,4 +1,3 @@
|
|
||||||
-import asyncio
|
|
||||||
import json
|
|
||||||
from unittest import TestCase
|
|
||||||
|
|
||||||
@@ -13,7 +12,7 @@ class AioHttpEntryTestCase(TestCase):
|
|
||||||
timeout = aiohttp.ClientTimeout(total=3)
|
|
||||||
|
|
||||||
@mocketize
|
|
||||||
- def test_http_session(self):
|
|
||||||
+ def test_http_session(self, event_loop):
|
|
||||||
url = "http://httpbin.org/ip"
|
|
||||||
body = "asd" * 100
|
|
||||||
Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
@@ -33,13 +32,11 @@ class AioHttpEntryTestCase(TestCase):
|
|
||||||
assert Mocket.last_request().method == "POST"
|
|
||||||
assert Mocket.last_request().body == body * 6
|
|
||||||
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(main(loop))
|
|
||||||
+ event_loop.run_until_complete(main(event_loop))
|
|
||||||
self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
|
|
||||||
@mocketize
|
|
||||||
- def test_https_session(self):
|
|
||||||
+ def test_https_session(self, event_loop):
|
|
||||||
url = "https://httpbin.org/ip"
|
|
||||||
body = "asd" * 100
|
|
||||||
Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
@@ -57,13 +54,11 @@ class AioHttpEntryTestCase(TestCase):
|
|
||||||
assert post_response.status == 201
|
|
||||||
assert await post_response.text() == body * 2
|
|
||||||
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(main(loop))
|
|
||||||
+ event_loop.run_until_complete(main(event_loop))
|
|
||||||
self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
|
|
||||||
@httprettified
|
|
||||||
- def test_httprettish_session(self):
|
|
||||||
+ def test_httprettish_session(self, event_loop):
|
|
||||||
url = "https://httpbin.org/ip"
|
|
||||||
HTTPretty.register_uri(
|
|
||||||
HTTPretty.GET,
|
|
||||||
@@ -79,6 +74,4 @@ class AioHttpEntryTestCase(TestCase):
|
|
||||||
assert get_response.status == 200
|
|
||||||
assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(main(loop))
|
|
||||||
+ event_loop.run_until_complete(main(event_loop))
|
|
||||||
diff --git a/tests/tests37/test_asyncio.py b/tests/tests37/test_asyncio.py
|
|
||||||
index 66f8cc9..72b3a0e 100644
|
|
||||||
--- a/tests/tests37/test_asyncio.py
|
|
||||||
+++ b/tests/tests37/test_asyncio.py
|
|
||||||
@@ -14,7 +14,7 @@ class AsyncIoRecordTestCase(TestCase):
|
|
||||||
temp_dir = tempfile.mkdtemp()
|
|
||||||
|
|
||||||
@mocketize(truesocket_recording_dir=temp_dir)
|
|
||||||
- def test_asyncio_record_replay(self):
|
|
||||||
+ def test_asyncio_record_replay(self, event_loop):
|
|
||||||
async def test_asyncio_connection():
|
|
||||||
reader, writer = await asyncio.open_connection(
|
|
||||||
host="google.com",
|
|
||||||
@@ -33,9 +33,7 @@ class AsyncIoRecordTestCase(TestCase):
|
|
||||||
writer.close()
|
|
||||||
await writer.wait_closed()
|
|
||||||
|
|
||||||
- loop = asyncio.new_event_loop()
|
|
||||||
- loop.set_debug(True)
|
|
||||||
- loop.run_until_complete(test_asyncio_connection())
|
|
||||||
+ event_loop.run_until_complete(test_asyncio_connection())
|
|
||||||
|
|
||||||
files = glob.glob(f"{self.temp_dir}/*.json")
|
|
||||||
self.assertEqual(len(files), 1)
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
|
@ -1,421 +0,0 @@
|
|||||||
From 5c718f123517ce02fced64677825d1ff3a4684c5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giorgio Salluzzo <giorgio.salluzzo@gmail.com>
|
|
||||||
Date: Wed, 28 Dec 2022 09:43:58 +0100
|
|
||||||
Subject: [PATCH 14/15] Refactoring using `tempfile` as a context manager.
|
|
||||||
|
|
||||||
---
|
|
||||||
tests/main/test_http.py | 96 ++++++++++++-----------
|
|
||||||
tests/main/test_http_aiohttp.py | 130 +++++++++++++++-----------------
|
|
||||||
tests/main/test_https.py | 31 ++++----
|
|
||||||
tests/main/test_mocket.py | 6 +-
|
|
||||||
tests/tests37/test_asyncio.py | 52 ++++++-------
|
|
||||||
5 files changed, 154 insertions(+), 161 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/main/test_http.py b/tests/main/test_http.py
|
|
||||||
index f1893be..60a54fb 100644
|
|
||||||
--- a/tests/main/test_http.py
|
|
||||||
+++ b/tests/main/test_http.py
|
|
||||||
@@ -13,11 +13,9 @@ from urllib.request import urlopen
|
|
||||||
import pytest
|
|
||||||
import requests
|
|
||||||
|
|
||||||
-from mocket import Mocket, mocketize
|
|
||||||
+from mocket import Mocket, Mocketizer, mocketize
|
|
||||||
from mocket.mockhttp import Entry, Response
|
|
||||||
|
|
||||||
-recording_directory = tempfile.mkdtemp()
|
|
||||||
-
|
|
||||||
|
|
||||||
class HttpTestCase(TestCase):
|
|
||||||
def assertEqualHeaders(self, first, second, msg=None):
|
|
||||||
@@ -36,57 +34,63 @@ class TrueHttpEntryTestCase(HttpTestCase):
|
|
||||||
resp = requests.get(url)
|
|
||||||
self.assertEqual(resp.status_code, 200)
|
|
||||||
|
|
||||||
- @mocketize(truesocket_recording_dir=recording_directory)
|
|
||||||
def test_truesendall_with_recording(self):
|
|
||||||
- url = "http://httpbin.org/ip"
|
|
||||||
-
|
|
||||||
- urlopen(url)
|
|
||||||
- requests.get(url)
|
|
||||||
- resp = urlopen(url)
|
|
||||||
- self.assertEqual(resp.code, 200)
|
|
||||||
- resp = requests.get(url)
|
|
||||||
- self.assertEqual(resp.status_code, 200)
|
|
||||||
- assert "origin" in resp.json()
|
|
||||||
-
|
|
||||||
- dump_filename = os.path.join(
|
|
||||||
- Mocket.get_truesocket_recording_dir(), Mocket.get_namespace() + ".json"
|
|
||||||
- )
|
|
||||||
- with io.open(dump_filename) as f:
|
|
||||||
- responses = json.load(f)
|
|
||||||
+ with tempfile.TemporaryDirectory() as temp_dir:
|
|
||||||
+ with Mocketizer(truesocket_recording_dir=temp_dir):
|
|
||||||
+ url = "http://httpbin.org/ip"
|
|
||||||
+
|
|
||||||
+ urlopen(url)
|
|
||||||
+ requests.get(url)
|
|
||||||
+ resp = urlopen(url)
|
|
||||||
+ self.assertEqual(resp.code, 200)
|
|
||||||
+ resp = requests.get(url)
|
|
||||||
+ self.assertEqual(resp.status_code, 200)
|
|
||||||
+ assert "origin" in resp.json()
|
|
||||||
+
|
|
||||||
+ dump_filename = os.path.join(
|
|
||||||
+ Mocket.get_truesocket_recording_dir(),
|
|
||||||
+ Mocket.get_namespace() + ".json",
|
|
||||||
+ )
|
|
||||||
+ with io.open(dump_filename) as f:
|
|
||||||
+ responses = json.load(f)
|
|
||||||
+
|
|
||||||
+ self.assertEqual(len(responses["httpbin.org"]["80"].keys()), 2)
|
|
||||||
|
|
||||||
- self.assertEqual(len(responses["httpbin.org"]["80"].keys()), 2)
|
|
||||||
-
|
|
||||||
- @mocketize(truesocket_recording_dir=recording_directory)
|
|
||||||
def test_truesendall_with_gzip_recording(self):
|
|
||||||
- url = "http://httpbin.org/gzip"
|
|
||||||
+ with tempfile.TemporaryDirectory() as temp_dir:
|
|
||||||
+ with Mocketizer(truesocket_recording_dir=temp_dir):
|
|
||||||
+ url = "http://httpbin.org/gzip"
|
|
||||||
|
|
||||||
- requests.get(url)
|
|
||||||
- resp = requests.get(url)
|
|
||||||
- self.assertEqual(resp.status_code, 200)
|
|
||||||
+ requests.get(url)
|
|
||||||
+ resp = requests.get(url)
|
|
||||||
+ self.assertEqual(resp.status_code, 200)
|
|
||||||
|
|
||||||
- dump_filename = os.path.join(
|
|
||||||
- Mocket.get_truesocket_recording_dir(), Mocket.get_namespace() + ".json"
|
|
||||||
- )
|
|
||||||
- with io.open(dump_filename) as f:
|
|
||||||
- responses = json.load(f)
|
|
||||||
+ dump_filename = os.path.join(
|
|
||||||
+ Mocket.get_truesocket_recording_dir(),
|
|
||||||
+ Mocket.get_namespace() + ".json",
|
|
||||||
+ )
|
|
||||||
+ with io.open(dump_filename) as f:
|
|
||||||
+ responses = json.load(f)
|
|
||||||
|
|
||||||
- assert len(responses["httpbin.org"]["80"].keys()) == 1
|
|
||||||
+ assert len(responses["httpbin.org"]["80"].keys()) == 1
|
|
||||||
|
|
||||||
- @mocketize(truesocket_recording_dir=recording_directory)
|
|
||||||
def test_truesendall_with_chunk_recording(self):
|
|
||||||
- url = "http://httpbin.org/range/70000?chunk_size=65536"
|
|
||||||
-
|
|
||||||
- requests.get(url)
|
|
||||||
- resp = requests.get(url)
|
|
||||||
- self.assertEqual(resp.status_code, 200)
|
|
||||||
-
|
|
||||||
- dump_filename = os.path.join(
|
|
||||||
- Mocket.get_truesocket_recording_dir(), Mocket.get_namespace() + ".json"
|
|
||||||
- )
|
|
||||||
- with io.open(dump_filename) as f:
|
|
||||||
- responses = json.load(f)
|
|
||||||
-
|
|
||||||
- assert len(responses["httpbin.org"]["80"].keys()) == 1
|
|
||||||
+ with tempfile.TemporaryDirectory() as temp_dir:
|
|
||||||
+ with Mocketizer(truesocket_recording_dir=temp_dir):
|
|
||||||
+ url = "http://httpbin.org/range/70000?chunk_size=65536"
|
|
||||||
+
|
|
||||||
+ requests.get(url)
|
|
||||||
+ resp = requests.get(url)
|
|
||||||
+ self.assertEqual(resp.status_code, 200)
|
|
||||||
+
|
|
||||||
+ dump_filename = os.path.join(
|
|
||||||
+ Mocket.get_truesocket_recording_dir(),
|
|
||||||
+ Mocket.get_namespace() + ".json",
|
|
||||||
+ )
|
|
||||||
+ with io.open(dump_filename) as f:
|
|
||||||
+ responses = json.load(f)
|
|
||||||
+
|
|
||||||
+ assert len(responses["httpbin.org"]["80"].keys()) == 1
|
|
||||||
|
|
||||||
@mocketize
|
|
||||||
def test_wrongpath_truesendall(self):
|
|
||||||
diff --git a/tests/main/test_http_aiohttp.py b/tests/main/test_http_aiohttp.py
|
|
||||||
index ab72397..b8539eb 100644
|
|
||||||
--- a/tests/main/test_http_aiohttp.py
|
|
||||||
+++ b/tests/main/test_http_aiohttp.py
|
|
||||||
@@ -1,5 +1,4 @@
|
|
||||||
import json
|
|
||||||
-from unittest import TestCase
|
|
||||||
|
|
||||||
import aiohttp
|
|
||||||
|
|
||||||
@@ -7,71 +6,66 @@ from mocket.mocket import Mocket, mocketize
|
|
||||||
from mocket.mockhttp import Entry
|
|
||||||
from mocket.plugins.httpretty import HTTPretty, httprettified
|
|
||||||
|
|
||||||
+timeout = aiohttp.ClientTimeout(total=3)
|
|
||||||
|
|
||||||
-class AioHttpEntryTestCase(TestCase):
|
|
||||||
- timeout = aiohttp.ClientTimeout(total=3)
|
|
||||||
-
|
|
||||||
- @mocketize
|
|
||||||
- def test_http_session(self, event_loop):
|
|
||||||
- url = "http://httpbin.org/ip"
|
|
||||||
- body = "asd" * 100
|
|
||||||
- Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
- Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
-
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(
|
|
||||||
- loop=_loop, timeout=self.timeout
|
|
||||||
- ) as session:
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
- assert Mocket.last_request().method == "POST"
|
|
||||||
- assert Mocket.last_request().body == body * 6
|
|
||||||
-
|
|
||||||
- event_loop.run_until_complete(main(event_loop))
|
|
||||||
- self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
-
|
|
||||||
- @mocketize
|
|
||||||
- def test_https_session(self, event_loop):
|
|
||||||
- url = "https://httpbin.org/ip"
|
|
||||||
- body = "asd" * 100
|
|
||||||
- Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
- Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
-
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(
|
|
||||||
- loop=_loop, timeout=self.timeout
|
|
||||||
- ) as session:
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 404
|
|
||||||
- assert await get_response.text() == body
|
|
||||||
-
|
|
||||||
- async with session.post(url, data=body * 6) as post_response:
|
|
||||||
- assert post_response.status == 201
|
|
||||||
- assert await post_response.text() == body * 2
|
|
||||||
-
|
|
||||||
- event_loop.run_until_complete(main(event_loop))
|
|
||||||
- self.assertEqual(len(Mocket.request_list()), 2)
|
|
||||||
-
|
|
||||||
- @httprettified
|
|
||||||
- def test_httprettish_session(self, event_loop):
|
|
||||||
- url = "https://httpbin.org/ip"
|
|
||||||
- HTTPretty.register_uri(
|
|
||||||
- HTTPretty.GET,
|
|
||||||
- url,
|
|
||||||
- body=json.dumps(dict(origin="127.0.0.1")),
|
|
||||||
- )
|
|
||||||
-
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(
|
|
||||||
- loop=_loop, timeout=self.timeout
|
|
||||||
- ) as session:
|
|
||||||
- async with session.get(url) as get_response:
|
|
||||||
- assert get_response.status == 200
|
|
||||||
- assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
-
|
|
||||||
- event_loop.run_until_complete(main(event_loop))
|
|
||||||
+
|
|
||||||
+@mocketize
|
|
||||||
+def test_http_session(event_loop):
|
|
||||||
+ url = "http://httpbin.org/ip"
|
|
||||||
+ body = "asd" * 100
|
|
||||||
+ Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
+ Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
+
|
|
||||||
+ async def main(_loop):
|
|
||||||
+ async with aiohttp.ClientSession(loop=_loop, timeout=timeout) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
+ assert Mocket.last_request().method == "POST"
|
|
||||||
+ assert Mocket.last_request().body == body * 6
|
|
||||||
+
|
|
||||||
+ event_loop.run_until_complete(main(event_loop))
|
|
||||||
+ assert len(Mocket.request_list()) == 2
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+@mocketize
|
|
||||||
+def test_https_session(event_loop):
|
|
||||||
+ url = "https://httpbin.org/ip"
|
|
||||||
+ body = "asd" * 100
|
|
||||||
+ Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
+ Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
+
|
|
||||||
+ async def main(_loop):
|
|
||||||
+ async with aiohttp.ClientSession(loop=_loop, timeout=timeout) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 404
|
|
||||||
+ assert await get_response.text() == body
|
|
||||||
+
|
|
||||||
+ async with session.post(url, data=body * 6) as post_response:
|
|
||||||
+ assert post_response.status == 201
|
|
||||||
+ assert await post_response.text() == body * 2
|
|
||||||
+
|
|
||||||
+ event_loop.run_until_complete(main(event_loop))
|
|
||||||
+ assert len(Mocket.request_list()) == 2
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+@httprettified
|
|
||||||
+def test_httprettish_session(event_loop):
|
|
||||||
+ url = "https://httpbin.org/ip"
|
|
||||||
+ HTTPretty.register_uri(
|
|
||||||
+ HTTPretty.GET,
|
|
||||||
+ url,
|
|
||||||
+ body=json.dumps(dict(origin="127.0.0.1")),
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+ async def main(_loop):
|
|
||||||
+ async with aiohttp.ClientSession(loop=_loop, timeout=timeout) as session:
|
|
||||||
+ async with session.get(url) as get_response:
|
|
||||||
+ assert get_response.status == 200
|
|
||||||
+ assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
+
|
|
||||||
+ event_loop.run_until_complete(main(event_loop))
|
|
||||||
diff --git a/tests/main/test_https.py b/tests/main/test_https.py
|
|
||||||
index 0a54e32..10652b5 100644
|
|
||||||
--- a/tests/main/test_https.py
|
|
||||||
+++ b/tests/main/test_https.py
|
|
||||||
@@ -42,22 +42,23 @@ recording_directory = tempfile.mkdtemp()
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif('os.getenv("SKIP_TRUE_HTTP", False)')
|
|
||||||
-@mocketize(truesocket_recording_dir=recording_directory)
|
|
||||||
def test_truesendall_with_recording_https():
|
|
||||||
- url = "https://httpbin.org/ip"
|
|
||||||
-
|
|
||||||
- requests.get(url, headers={"Accept": "application/json"})
|
|
||||||
- resp = requests.get(url, headers={"Accept": "application/json"})
|
|
||||||
- assert resp.status_code == 200
|
|
||||||
-
|
|
||||||
- dump_filename = os.path.join(
|
|
||||||
- Mocket.get_truesocket_recording_dir(),
|
|
||||||
- Mocket.get_namespace() + ".json",
|
|
||||||
- )
|
|
||||||
- with io.open(dump_filename) as f:
|
|
||||||
- responses = json.load(f)
|
|
||||||
-
|
|
||||||
- assert len(responses["httpbin.org"]["443"].keys()) == 1
|
|
||||||
+ with tempfile.TemporaryDirectory() as temp_dir:
|
|
||||||
+ with Mocketizer(truesocket_recording_dir=temp_dir):
|
|
||||||
+ url = "https://httpbin.org/ip"
|
|
||||||
+
|
|
||||||
+ requests.get(url, headers={"Accept": "application/json"})
|
|
||||||
+ resp = requests.get(url, headers={"Accept": "application/json"})
|
|
||||||
+ assert resp.status_code == 200
|
|
||||||
+
|
|
||||||
+ dump_filename = os.path.join(
|
|
||||||
+ Mocket.get_truesocket_recording_dir(),
|
|
||||||
+ Mocket.get_namespace() + ".json",
|
|
||||||
+ )
|
|
||||||
+ with io.open(dump_filename) as f:
|
|
||||||
+ responses = json.load(f)
|
|
||||||
+
|
|
||||||
+ assert len(responses["httpbin.org"]["443"].keys()) == 1
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif('os.getenv("SKIP_TRUE_HTTP", False)')
|
|
||||||
diff --git a/tests/main/test_mocket.py b/tests/main/test_mocket.py
|
|
||||||
index 67ad337..14057b1 100644
|
|
||||||
--- a/tests/main/test_mocket.py
|
|
||||||
+++ b/tests/main/test_mocket.py
|
|
||||||
@@ -174,13 +174,13 @@ def test_mocketize_outside_a_test_class():
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
-def fixture():
|
|
||||||
+def two():
|
|
||||||
return 2
|
|
||||||
|
|
||||||
|
|
||||||
@mocketize
|
|
||||||
-def test_mocketize_with_fixture(fixture):
|
|
||||||
- assert 2 == fixture
|
|
||||||
+def test_mocketize_with_fixture(two):
|
|
||||||
+ assert 2 == two
|
|
||||||
|
|
||||||
|
|
||||||
@mocketize
|
|
||||||
diff --git a/tests/tests37/test_asyncio.py b/tests/tests37/test_asyncio.py
|
|
||||||
index 72b3a0e..c90bcb8 100644
|
|
||||||
--- a/tests/tests37/test_asyncio.py
|
|
||||||
+++ b/tests/tests37/test_asyncio.py
|
|
||||||
@@ -2,45 +2,39 @@ import asyncio
|
|
||||||
import glob
|
|
||||||
import io
|
|
||||||
import json
|
|
||||||
-import shutil
|
|
||||||
import socket
|
|
||||||
import tempfile
|
|
||||||
-from unittest import TestCase
|
|
||||||
|
|
||||||
-from mocket.mocket import mocketize
|
|
||||||
+from mocket import Mocketizer
|
|
||||||
|
|
||||||
|
|
||||||
-class AsyncIoRecordTestCase(TestCase):
|
|
||||||
- temp_dir = tempfile.mkdtemp()
|
|
||||||
+def test_asyncio_record_replay(event_loop):
|
|
||||||
+ async def test_asyncio_connection():
|
|
||||||
+ reader, writer = await asyncio.open_connection(
|
|
||||||
+ host="google.com",
|
|
||||||
+ port=80,
|
|
||||||
+ family=socket.AF_INET,
|
|
||||||
+ proto=socket.IPPROTO_TCP,
|
|
||||||
+ ssl=None,
|
|
||||||
+ server_hostname=None,
|
|
||||||
+ )
|
|
||||||
|
|
||||||
- @mocketize(truesocket_recording_dir=temp_dir)
|
|
||||||
- def test_asyncio_record_replay(self, event_loop):
|
|
||||||
- async def test_asyncio_connection():
|
|
||||||
- reader, writer = await asyncio.open_connection(
|
|
||||||
- host="google.com",
|
|
||||||
- port=80,
|
|
||||||
- family=socket.AF_INET,
|
|
||||||
- proto=socket.IPPROTO_TCP,
|
|
||||||
- ssl=None,
|
|
||||||
- server_hostname=None,
|
|
||||||
- )
|
|
||||||
+ buf = "GET / HTTP/1.1\r\nHost: google.com\r\n\r\n"
|
|
||||||
+ writer.write(buf.encode())
|
|
||||||
+ await writer.drain()
|
|
||||||
|
|
||||||
- buf = "GET / HTTP/1.1\r\nHost: google.com\r\n\r\n"
|
|
||||||
- writer.write(buf.encode())
|
|
||||||
- await writer.drain()
|
|
||||||
+ await reader.readline()
|
|
||||||
+ writer.close()
|
|
||||||
+ await writer.wait_closed()
|
|
||||||
|
|
||||||
- await reader.readline()
|
|
||||||
- writer.close()
|
|
||||||
- await writer.wait_closed()
|
|
||||||
+ with tempfile.TemporaryDirectory() as temp_dir:
|
|
||||||
+ with Mocketizer(truesocket_recording_dir=temp_dir):
|
|
||||||
+ event_loop.run_until_complete(test_asyncio_connection())
|
|
||||||
|
|
||||||
- event_loop.run_until_complete(test_asyncio_connection())
|
|
||||||
-
|
|
||||||
- files = glob.glob(f"{self.temp_dir}/*.json")
|
|
||||||
- self.assertEqual(len(files), 1)
|
|
||||||
+ files = glob.glob(f"{temp_dir}/*.json")
|
|
||||||
+ assert len(files) == 1
|
|
||||||
|
|
||||||
with io.open(files[0]) as f:
|
|
||||||
responses = json.load(f)
|
|
||||||
|
|
||||||
- self.assertEqual(len(responses["google.com"]["80"].keys()), 1)
|
|
||||||
-
|
|
||||||
- shutil.rmtree(self.temp_dir)
|
|
||||||
+ assert len(responses["google.com"]["80"].keys()) == 1
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
|
@ -1,112 +0,0 @@
|
|||||||
From b736f854e1bc65a091498102e8102c6db98009a1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giorgio Salluzzo <giorgio.salluzzo@gmail.com>
|
|
||||||
Date: Wed, 28 Dec 2022 16:03:37 +0100
|
|
||||||
Subject: [PATCH 15/15] Skip those tests and see what happens to the rest.
|
|
||||||
|
|
||||||
---
|
|
||||||
Pipfile | 3 ++-
|
|
||||||
mocket/plugins/httpretty/__init__.py | 1 +
|
|
||||||
tests/main/test_http_aiohttp.py | 33 ++++++++++++++++++----------
|
|
||||||
3 files changed, 24 insertions(+), 13 deletions(-)
|
|
||||||
|
|
||||||
Index: mocket-3.10.9/mocket/plugins/httpretty/__init__.py
|
|
||||||
===================================================================
|
|
||||||
--- mocket-3.10.9.orig/mocket/plugins/httpretty/__init__.py
|
|
||||||
+++ mocket-3.10.9/mocket/plugins/httpretty/__init__.py
|
|
||||||
@@ -118,6 +118,7 @@ httpretty = HTTPretty
|
|
||||||
|
|
||||||
__all__ = (
|
|
||||||
"HTTPretty",
|
|
||||||
+ "httpretty",
|
|
||||||
"activate",
|
|
||||||
"async_httprettified",
|
|
||||||
"httprettified",
|
|
||||||
Index: mocket-3.10.9/tests/main/test_http_aiohttp.py
|
|
||||||
===================================================================
|
|
||||||
--- mocket-3.10.9.orig/tests/main/test_http_aiohttp.py
|
|
||||||
+++ mocket-3.10.9/tests/main/test_http_aiohttp.py
|
|
||||||
@@ -1,10 +1,13 @@
|
|
||||||
import json
|
|
||||||
+import sys
|
|
||||||
|
|
||||||
import aiohttp
|
|
||||||
+import pytest
|
|
||||||
+from asgiref.sync import async_to_sync
|
|
||||||
|
|
||||||
from mocket.mocket import Mocket, mocketize
|
|
||||||
from mocket.mockhttp import Entry
|
|
||||||
-from mocket.plugins.httpretty import HTTPretty, httprettified
|
|
||||||
+from mocket.plugins.httpretty import httprettified, httpretty
|
|
||||||
|
|
||||||
timeout = aiohttp.ClientTimeout(total=3)
|
|
||||||
|
|
||||||
@@ -16,8 +19,9 @@ def test_http_session(event_loop):
|
|
||||||
Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(loop=_loop, timeout=timeout) as session:
|
|
||||||
+ @async_to_sync
|
|
||||||
+ async def perform_aiohttp_transactions():
|
|
||||||
+ async with aiohttp.ClientSession(timeout=timeout) as session:
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 404
|
|
||||||
assert await get_response.text() == body
|
|
||||||
@@ -28,10 +32,11 @@ def test_http_session(event_loop):
|
|
||||||
assert Mocket.last_request().method == "POST"
|
|
||||||
assert Mocket.last_request().body == body * 6
|
|
||||||
|
|
||||||
- event_loop.run_until_complete(main(event_loop))
|
|
||||||
+ perform_aiohttp_transactions()
|
|
||||||
assert len(Mocket.request_list()) == 2
|
|
||||||
|
|
||||||
|
|
||||||
+@pytest.mark.skipif(sys.version_info >= (3, 11), reason="Failing with Python 3.11")
|
|
||||||
@mocketize
|
|
||||||
def test_https_session(event_loop):
|
|
||||||
url = "https://httpbin.org/ip"
|
|
||||||
@@ -39,8 +44,9 @@ def test_https_session(event_loop):
|
|
||||||
Entry.single_register(Entry.GET, url, body=body, status=404)
|
|
||||||
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
|
|
||||||
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(loop=_loop, timeout=timeout) as session:
|
|
||||||
+ @async_to_sync
|
|
||||||
+ async def perform_aiohttp_transactions():
|
|
||||||
+ async with aiohttp.ClientSession(timeout=timeout) as session:
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 404
|
|
||||||
assert await get_response.text() == body
|
|
||||||
@@ -49,23 +55,26 @@ def test_https_session(event_loop):
|
|
||||||
assert post_response.status == 201
|
|
||||||
assert await post_response.text() == body * 2
|
|
||||||
|
|
||||||
- event_loop.run_until_complete(main(event_loop))
|
|
||||||
+ perform_aiohttp_transactions()
|
|
||||||
assert len(Mocket.request_list()) == 2
|
|
||||||
|
|
||||||
|
|
||||||
+@pytest.mark.skipif(sys.version_info >= (3, 11), reason="Failing with Python 3.11")
|
|
||||||
@httprettified
|
|
||||||
def test_httprettish_session(event_loop):
|
|
||||||
url = "https://httpbin.org/ip"
|
|
||||||
- HTTPretty.register_uri(
|
|
||||||
- HTTPretty.GET,
|
|
||||||
+ httpretty.register_uri(
|
|
||||||
+ httpretty.GET,
|
|
||||||
url,
|
|
||||||
body=json.dumps(dict(origin="127.0.0.1")),
|
|
||||||
)
|
|
||||||
|
|
||||||
- async def main(_loop):
|
|
||||||
- async with aiohttp.ClientSession(loop=_loop, timeout=timeout) as session:
|
|
||||||
+ @async_to_sync
|
|
||||||
+ async def perform_aiohttp_transactions():
|
|
||||||
+ async with aiohttp.ClientSession(timeout=timeout) as session:
|
|
||||||
async with session.get(url) as get_response:
|
|
||||||
assert get_response.status == 200
|
|
||||||
assert await get_response.text() == '{"origin": "127.0.0.1"}'
|
|
||||||
|
|
||||||
- event_loop.run_until_complete(main(event_loop))
|
|
||||||
+ perform_aiohttp_transactions()
|
|
||||||
+ assert len(httpretty.latest_requests) == 1
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:7c0570e56be924e213416a80f18e978bb41b6ae9d9d56197c40b943176e1f80c
|
|
||||||
size 77187
|
|
3
mocket-3.11.0.tar.gz
Normal file
3
mocket-3.11.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:38874b3f78479cf67d32aac7b7a1b9b764923b7e36fa34c00a0cf133a4635583
|
||||||
|
size 77477
|
@ -1,3 +1,19 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Feb 19 21:05:20 UTC 2023 - Sebastian Wagner <sebix@sebix.at>
|
||||||
|
|
||||||
|
- Update to version 3.11:
|
||||||
|
- Migrating the HTTP[S] mock from relying on http-parser to httptools.
|
||||||
|
- Never discovered the root cause for the failing tests with aiohttp/Python 3.11 (first time ever I added @pytest.mark.xfail to a few tests). Same test works with httpx, so I suspect it's related to a client issue. I'll probably migrate to httpx as the reference client for testing async/await code.
|
||||||
|
- remove patches merged upstream:
|
||||||
|
0007-Switching-to-httptools.parser.HttpRequestParser.patch
|
||||||
|
0008-Disabling-tests-for-pook-when-testing-Python-3.11.patch
|
||||||
|
0009-Removing-DeprecationWarning-all-over-the-place.patch
|
||||||
|
0010-Python-3.11-needs-an-async-decorator.patch
|
||||||
|
0012-Removing-async-timeout-dependency.patch
|
||||||
|
0013-Refactoring-using-event_loop-fixture.patch
|
||||||
|
0014-Refactoring-using-tempfile-as-a-context-manager.patch
|
||||||
|
0015-Skip-those-tests-and-see-what-happens-to-the-rest.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Feb 2 11:44:50 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
Thu Feb 2 11:44:50 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
@ -27,21 +27,12 @@
|
|||||||
|
|
||||||
%define skip_python2 1
|
%define skip_python2 1
|
||||||
Name: python-mocket%{psuffix}
|
Name: python-mocket%{psuffix}
|
||||||
Version: 3.10.9
|
Version: 3.11.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Python socket mock framework
|
Summary: Python socket mock framework
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
URL: https://github.com/mindflayer/python-mocket
|
URL: https://github.com/mindflayer/python-mocket
|
||||||
Source0: https://files.pythonhosted.org/packages/source/m/mocket/mocket-%{version}.tar.gz
|
Source0: https://files.pythonhosted.org/packages/source/m/mocket/mocket-%{version}.tar.gz
|
||||||
# PATCH-FIX-UPSTREAM: taken from https://github.com/mindflayer/python-mocket/pull/181
|
|
||||||
Patch1: 0007-Switching-to-httptools.parser.HttpRequestParser.patch
|
|
||||||
Patch2: 0008-Disabling-tests-for-pook-when-testing-Python-3.11.patch
|
|
||||||
Patch3: 0009-Removing-DeprecationWarning-all-over-the-place.patch
|
|
||||||
Patch4: 0010-Python-3.11-needs-an-async-decorator.patch
|
|
||||||
Patch5: 0012-Removing-async-timeout-dependency.patch
|
|
||||||
Patch6: 0013-Refactoring-using-event_loop-fixture.patch
|
|
||||||
Patch7: 0014-Refactoring-using-tempfile-as-a-context-manager.patch
|
|
||||||
Patch8: 0015-Skip-those-tests-and-see-what-happens-to-the-rest.patch
|
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
@ -109,7 +100,7 @@ donttest="$donttest or test_asyncio_record_replay"
|
|||||||
donttest="$donttest or test_truesendall_with_dump_from_recording"
|
donttest="$donttest or test_truesendall_with_dump_from_recording"
|
||||||
%endif
|
%endif
|
||||||
# these fail after the python 3.11 patches
|
# these fail after the python 3.11 patches
|
||||||
donttest="$donttest or test_http_session or test_https_session or test_httprettish_session"
|
#donttest="$donttest or test_http_session or test_https_session or test_httprettish_session"
|
||||||
%pytest -rfEs -k "not ($donttest)" ${pytest_$python_ignore}
|
%pytest -rfEs -k "not ($donttest)" ${pytest_$python_ignore}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user