Skip to content

Commit 2fa1adf

Browse files
authored
Introducing request_list() method (#170)
* Introducing `request_list()` method.
1 parent 6ecd3d7 commit 2fa1adf

File tree

9 files changed

+55
-53
lines changed

9 files changed

+55
-53
lines changed

mocket/__init__.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
from mocket.mocket import Mocket, MocketEntry, Mocketizer, mocketize
1+
from .async_mocket import async_mocketize
2+
from .mocket import Mocket, MocketEntry, Mocketizer, mocketize
23

3-
__all__ = ("mocketize", "Mocket", "MocketEntry", "Mocketizer")
4+
__all__ = ("async_mocketize", "mocketize", "Mocket", "MocketEntry", "Mocketizer")
45

5-
__version__ = "3.10.2"
6+
__version__ = "3.10.3"

mocket/async_mocket.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from mocket import Mocketizer
2-
from mocket.utils import get_mocketize
1+
from .mocket import Mocketizer
2+
from .utils import get_mocketize
33

44

55
async def wrapper(test, cls=Mocketizer, truesocket_recording_dir=None, *args, **kwargs):

mocket/mocket.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ def get_entry(cls, host, port, data):
422422

423423
@classmethod
424424
def collect(cls, data):
425-
cls._requests.append(data)
425+
cls.request_list().append(data)
426426

427427
@classmethod
428428
def reset(cls):
@@ -433,17 +433,21 @@ def reset(cls):
433433

434434
@classmethod
435435
def last_request(cls):
436-
if cls._requests:
437-
return cls._requests[-1]
436+
if cls.has_requests():
437+
return cls.request_list()[-1]
438+
439+
@classmethod
440+
def request_list(cls):
441+
return cls._requests
438442

439443
@classmethod
440444
def remove_last_request(cls):
441-
if cls._requests:
445+
if cls.has_requests():
442446
del cls._requests[-1]
443447

444448
@classmethod
445449
def has_requests(cls):
446-
return len(cls._requests) > 0
450+
return bool(cls.request_list())
447451

448452
@staticmethod
449453
def enable(namespace=None, truesocket_recording_dir=None):

mocket/plugins/httpretty/__init__.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,11 @@ class MocketHTTPretty:
102102

103103
Response = Response
104104

105-
def __init__(self):
106-
pass
107-
108105
def __getattr__(self, name):
109106
if name == "last_request":
110107
return Mocket.last_request()
111108
if name == "latest_requests":
112-
return Mocket._requests
109+
return Mocket.request_list()
113110
return getattr(Entry, name)
114111

115112

tests/main/test_http.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ def test_sendall(self):
149149
"Content-type": "text/plain; charset=utf-8",
150150
},
151151
)
152-
self.assertEqual(len(Mocket._requests), 1)
152+
self.assertEqual(len(Mocket.request_list()), 1)
153153

154154
@mocketize
155155
def test_sendall_json(self):
@@ -176,7 +176,7 @@ def test_sendall_json(self):
176176
"content-type": "application/json",
177177
},
178178
)
179-
self.assertEqual(len(Mocket._requests), 1)
179+
self.assertEqual(len(Mocket.request_list()), 1)
180180

181181
@mocketize
182182
def test_sendall_double(self):
@@ -188,7 +188,7 @@ def test_sendall_double(self):
188188
self.assertEqual(response.code, 200)
189189
response = urlopen("http://testme.org/")
190190
self.assertEqual(response.code, 200)
191-
self.assertEqual(len(Mocket._requests), 3)
191+
self.assertEqual(len(Mocket.request_list()), 3)
192192

193193
@mocketize
194194
def test_mockhttp_entry_collect_duplicates(self):
@@ -201,7 +201,7 @@ def test_mockhttp_entry_collect_duplicates(self):
201201
headers={"content-type": "application/json"},
202202
)
203203
requests.post("http://testme.org/")
204-
self.assertEqual(len(Mocket._requests), 2)
204+
self.assertEqual(len(Mocket.request_list()), 2)
205205
self.assertEqual(Mocket.last_request().path, "/")
206206

207207
@mocketize
@@ -235,7 +235,7 @@ def test_multipart(self):
235235
"connection": "keep-alive",
236236
},
237237
)
238-
self.assertEqual(len(Mocket._requests), 1)
238+
self.assertEqual(len(Mocket.request_list()), 1)
239239

240240
@mocketize
241241
def test_file_object(self):

tests/main/test_http_aiohttp.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ async def main(_loop):
3535
loop = asyncio.get_event_loop()
3636
loop.set_debug(True)
3737
loop.run_until_complete(main(loop))
38-
self.assertEqual(len(Mocket._requests), 2)
38+
self.assertEqual(len(Mocket.request_list()), 2)
3939

4040
@mocketize
4141
def test_https_session(self):
@@ -59,7 +59,7 @@ async def main(_loop):
5959
loop = asyncio.get_event_loop()
6060
loop.set_debug(True)
6161
loop.run_until_complete(main(loop))
62-
self.assertEqual(len(Mocket._requests), 2)
62+
self.assertEqual(len(Mocket.request_list()), 2)
6363

6464
@httprettified
6565
def test_httprettish_session(self):

tests/main/test_mocket.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ def setUp(self):
1818

1919
def test_lastrequest(self):
2020
self.assertEqual(Mocket.last_request(), None)
21-
Mocket._requests.extend([1, 2, 3])
21+
Mocket.request_list().extend([1, 2, 3])
2222
self.assertEqual(Mocket.last_request(), 3)
2323

2424
def test_reset(self):
25-
Mocket._requests.extend([1, 2, 3])
26-
self.assertEqual(Mocket._requests, [1, 2, 3])
25+
Mocket.request_list().extend([1, 2, 3])
26+
self.assertEqual(Mocket.request_list(), [1, 2, 3])
2727
Mocket.reset()
28-
self.assertEqual(Mocket._requests, [])
28+
self.assertEqual(Mocket.request_list(), [])
2929

3030
def test_has_requests(self):
31-
Mocket._requests.extend([1, 2, 3])
31+
Mocket.request_list().extend([1, 2, 3])
3232
self.assertTrue(Mocket.has_requests())
3333
Mocket.reset()
3434
self.assertFalse(Mocket.has_requests())
@@ -64,16 +64,16 @@ def test_collect(self):
6464
request = "GET /get/p/?b=2&a=1 HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: testme.org\r\nConnection: close\r\nUser-Agent: Python-urllib/2.6\r\n\r\n"
6565
Mocket.collect(request)
6666
self.assertEqual(Mocket.last_request(), request)
67-
self.assertEqual(Mocket._requests, [request])
67+
self.assertEqual(Mocket.request_list(), [request])
6868

6969
def test_remove_last(self):
7070
Mocket._requests = [1, 2]
7171
Mocket.remove_last_request()
72-
self.assertEqual(Mocket._requests, [1])
72+
self.assertEqual(Mocket.request_list(), [1])
7373

7474
def test_remove_last_empty(self):
7575
Mocket.remove_last_request()
76-
self.assertEqual(Mocket._requests, [])
76+
self.assertEqual(Mocket.request_list(), [])
7777

7878
def test_getentry(self):
7979
entry = MocketEntry(("localhost", 80), True)
@@ -130,7 +130,7 @@ def test_makefile(self):
130130
fp = _so.makefile("rb")
131131
_so.sendall(encode_to_bytes("...\r\n"))
132132
self.assertEqual(fp.read().strip(), encode_to_bytes("Show me."))
133-
self.assertEqual(len(Mocket._requests), 1)
133+
self.assertEqual(len(Mocket.request_list()), 1)
134134

135135
def test_socket_as_context_manager(self):
136136
addr = ("localhost", 80)

tests/main/test_redis.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def setUp(self):
9999
self.rclient.flushdb()
100100

101101
def mocketize_teardown(self):
102-
self.assertEqual(len(Mocket._requests), 0)
102+
self.assertEqual(len(Mocket.request_list()), 0)
103103

104104
@mocketize
105105
def test_set(self):
@@ -165,14 +165,14 @@ def setUp(self):
165165
def mocketize_setup(self):
166166
Entry.register_response("FLUSHDB", OK)
167167
self.rclient.flushdb()
168-
self.assertEqual(len(Mocket._requests), 1)
168+
self.assertEqual(len(Mocket.request_list()), 1)
169169
Mocket.reset()
170170

171171
@mocketize
172172
def test_set(self):
173173
Entry.register_response('SET mocket "is awesome!"', OK)
174174
self.assertTrue(self.rclient.set("mocket", "is awesome!"))
175-
self.assertEqual(len(Mocket._requests), 1)
175+
self.assertEqual(len(Mocket.request_list()), 1)
176176
self.assertEqual(
177177
Mocket.last_request().data,
178178
b"*3\r\n$3\r\nSET\r\n$6\r\nmocket\r\n$11\r\nis awesome!\r\n",
@@ -184,17 +184,17 @@ def test_incr(self):
184184
self.assertEqual(self.rclient.incr("counter"), 1)
185185
self.assertEqual(self.rclient.incr("counter"), 2)
186186
self.assertEqual(self.rclient.incr("counter"), 3)
187-
self.assertEqual(len(Mocket._requests), 3)
187+
self.assertEqual(len(Mocket.request_list()), 3)
188188
self.assertEqual(
189-
Mocket._requests[0].data,
189+
Mocket.request_list()[0].data,
190190
b"*3\r\n$6\r\nINCRBY\r\n$7\r\ncounter\r\n$1\r\n1\r\n",
191191
)
192192
self.assertEqual(
193-
Mocket._requests[1].data,
193+
Mocket.request_list()[1].data,
194194
b"*3\r\n$6\r\nINCRBY\r\n$7\r\ncounter\r\n$1\r\n1\r\n",
195195
)
196196
self.assertEqual(
197-
Mocket._requests[2].data,
197+
Mocket.request_list()[2].data,
198198
b"*3\r\n$6\r\nINCRBY\r\n$7\r\ncounter\r\n$1\r\n1\r\n",
199199
)
200200

@@ -203,34 +203,34 @@ def test_hgetall(self):
203203
h = {b"f1": b"one", b"f2": b"two"}
204204
Entry.register_response("HGETALL hash", h)
205205
self.assertEqual(self.rclient.hgetall("hash"), h)
206-
self.assertEqual(len(Mocket._requests), 1)
206+
self.assertEqual(len(Mocket.request_list()), 1)
207207
self.assertEqual(
208-
Mocket._requests[0].data, b"*2\r\n$7\r\nHGETALL\r\n$4\r\nhash\r\n"
208+
Mocket.request_list()[0].data, b"*2\r\n$7\r\nHGETALL\r\n$4\r\nhash\r\n"
209209
)
210210

211211
@mocketize
212212
def test_get(self):
213213
Entry.register_response("GET mocket", "is awesome!")
214214
self.assertEqual(self.rclient.get("mocket"), b"is awesome!")
215-
self.assertEqual(len(Mocket._requests), 1)
215+
self.assertEqual(len(Mocket.request_list()), 1)
216216
self.assertEqual(
217-
Mocket._requests[0].data, b"*2\r\n$3\r\nGET\r\n$6\r\nmocket\r\n"
217+
Mocket.request_list()[0].data, b"*2\r\n$3\r\nGET\r\n$6\r\nmocket\r\n"
218218
)
219219

220220
@mocketize
221221
def test_get_utf8(self):
222222
Entry.register_response("GET snowman", "☃")
223223
self.assertEqual(self.rclient.get("snowman"), b"\xe2\x98\x83")
224-
self.assertEqual(len(Mocket._requests), 1)
224+
self.assertEqual(len(Mocket.request_list()), 1)
225225
self.assertEqual(
226-
Mocket._requests[0].data, b"*2\r\n$3\r\nGET\r\n$7\r\nsnowman\r\n"
226+
Mocket.request_list()[0].data, b"*2\r\n$3\r\nGET\r\n$7\r\nsnowman\r\n"
227227
)
228228

229229
@mocketize
230230
def test_get_unicode(self):
231231
Entry.register_response("GET snowman", "\u2603")
232232
self.assertEqual(self.rclient.get("snowman"), b"\xe2\x98\x83")
233-
self.assertEqual(len(Mocket._requests), 1)
233+
self.assertEqual(len(Mocket.request_list()), 1)
234234
self.assertEqual(
235235
Mocket.last_request().data, b"*2\r\n$3\r\nGET\r\n$7\r\nsnowman\r\n"
236236
)
@@ -240,7 +240,7 @@ def test_lrange(self):
240240
l = [b"one", b"two", b"three"]
241241
Entry.register_response("LRANGE list 0 -1", l)
242242
self.assertEqual(self.rclient.lrange("list", 0, -1), l)
243-
self.assertEqual(len(Mocket._requests), 1)
243+
self.assertEqual(len(Mocket.request_list()), 1)
244244
self.assertEqual(
245245
Mocket.last_request().data,
246246
b"*4\r\n$6\r\nLRANGE\r\n$4\r\nlist\r\n$1\r\n0\r\n$2\r\n-1\r\n",
@@ -252,7 +252,7 @@ def test_err(self):
252252
"INCRBY counter one", ERROR("ERR value is not an integer or out of range")
253253
)
254254
self.assertRaises(redis.ResponseError, self.rclient.incr, "counter", "one")
255-
self.assertEqual(len(Mocket._requests), 1)
255+
self.assertEqual(len(Mocket.request_list()), 1)
256256
self.assertEqual(
257257
Mocket.last_request().data,
258258
b"*3\r\n$6\r\nINCRBY\r\n$7\r\ncounter\r\n$3\r\none\r\n",

tests/tests38/test_http_aiohttp.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
class AioHttpEntryTestCase(IsolatedAsyncioTestCase):
1414
@async_mocketize
1515
async def test_http_session(self):
16-
url = 'http://httpbin.org/ip'
16+
url = "http://httpbin.org/ip"
1717
body = "asd" * 100
1818
Entry.single_register(Entry.GET, url, body=body, status=404)
1919
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
@@ -28,14 +28,14 @@ async def test_http_session(self):
2828
async with session.post(url, data=body * 6) as post_response:
2929
assert post_response.status == 201
3030
assert await post_response.text() == body * 2
31-
assert Mocket.last_request().method == 'POST'
31+
assert Mocket.last_request().method == "POST"
3232
assert Mocket.last_request().body == body * 6
3333

34-
self.assertEqual(len(Mocket._requests), 2)
34+
self.assertEqual(len(Mocket.request_list()), 2)
3535

3636
@async_mocketize
3737
async def test_https_session(self):
38-
url = 'https://httpbin.org/ip'
38+
url = "https://httpbin.org/ip"
3939
body = "asd" * 100
4040
Entry.single_register(Entry.GET, url, body=body, status=404)
4141
Entry.single_register(Entry.POST, url, body=body * 2, status=201)
@@ -51,15 +51,15 @@ async def test_https_session(self):
5151
assert post_response.status == 201
5252
assert await post_response.text() == body * 2
5353

54-
self.assertEqual(len(Mocket._requests), 2)
54+
self.assertEqual(len(Mocket.request_list()), 2)
5555

5656
@async_httprettified
5757
async def test_httprettish_session(self):
58-
url = 'https://httpbin.org/ip'
58+
url = "https://httpbin.org/ip"
5959
HTTPretty.register_uri(
6060
HTTPretty.GET,
6161
url,
62-
body=json.dumps(dict(origin='127.0.0.1')),
62+
body=json.dumps(dict(origin="127.0.0.1")),
6363
)
6464

6565
async with aiohttp.ClientSession() as session:

0 commit comments

Comments
 (0)