Skip to content

Commit ff6628f

Browse files
authored
A few refactors (#145)
* A few refactors. * Adding `make setup` for local development.
1 parent 68af0c1 commit ff6628f

File tree

3 files changed

+38
-30
lines changed

3 files changed

+38
-30
lines changed

Makefile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/usr/bin/make -f
22

3+
VERSION := $(shell python -c 'import mocket; print(mocket.__version__)')
4+
35
install-dev-requirements:
46
pip install pipenv==2020.11.15
57

@@ -17,6 +19,9 @@ lint-python:
1719
pipenv run flake8 --ignore=E501,E731,W503 --exclude=.git,compat.py --per-file-ignores='mocket/async_mocket.py:E999' mocket
1820
@echo ""
1921

22+
setup: develop
23+
pre-commit install
24+
2025
develop: install-dev-requirements install-test-requirements
2126

2227
test: lint-python test-python
@@ -26,11 +31,11 @@ safetest:
2631

2732
publish: install-test-requirements
2833
pipenv run python setup.py sdist
29-
pipenv run twine upload dist/mocket-$(shell python -c 'import mocket; print(mocket.__version__)')*.*
30-
pipenv run anaconda upload dist/mocket-$(shell python -c 'import mocket; print(mocket.__version__)').tar.gz
34+
pipenv run twine upload dist/mocket-$(VERSION).tar.gz
35+
pipenv run anaconda upload dist/mocket-$(VERSION).tar.gz
3136

3237
clean:
3338
rm -rf *.egg-info dist/
3439
find . -type d -name __pycache__ -exec rm -rf {} \;
3540

36-
.PHONY: clean publish safetest test develop lint-python test-python install-test-requirements install-dev-requirements
41+
.PHONY: clean publish safetest test setup develop lint-python test-python install-test-requirements install-dev-requirements

mocket/mocket.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -548,18 +548,18 @@ def __init__(self, location, responses):
548548
):
549549
responses = [responses]
550550

551-
self.responses = []
552-
for r in responses:
553-
if isinstance(r, BaseException):
554-
pass
555-
elif not getattr(r, "data", False):
556-
if isinstance(r, text_type):
557-
r = encode_to_bytes(r)
558-
r = self.response_cls(r)
559-
self.responses.append(r)
551+
if not responses:
552+
self.responses = [self.response_cls(encode_to_bytes(""))]
560553
else:
561-
if not responses:
562-
self.responses = [self.response_cls(encode_to_bytes(""))]
554+
self.responses = []
555+
for r in responses:
556+
if isinstance(r, BaseException):
557+
pass
558+
elif not getattr(r, "data", False):
559+
if isinstance(r, text_type):
560+
r = encode_to_bytes(r)
561+
r = self.response_cls(r)
562+
self.responses.append(r)
563563

564564
def can_handle(self, data):
565565
return True

tests/tests37/test_asyncio.py

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,48 @@
11
import asyncio
2+
import glob
3+
import io
24
import json
3-
from unittest import TestCase
5+
import shutil
46
import socket
5-
import io
7+
import tempfile
8+
from unittest import TestCase
69

7-
from mocket.mocket import Mocket, mocketize
10+
from mocket.mocket import mocketize
811

912

1013
class AsyncIoRecordTestCase(TestCase):
14+
temp_dir = tempfile.mkdtemp()
15+
16+
@mocketize(truesocket_recording_dir=temp_dir)
1117
def test_asyncio_record_replay(self):
1218
async def test_asyncio_connection():
13-
mock_out = b'HTTP/1.1 301 Moved Permanently\r\n'
1419
reader, writer = await asyncio.open_connection(
15-
host='google.com',
20+
host="google.com",
1621
port=80,
1722
family=socket.AF_INET,
1823
proto=socket.IPPROTO_TCP,
1924
ssl=None,
2025
server_hostname=None,
2126
)
2227

23-
buf = 'GET / HTTP/1.1\r\nHost: google.com\r\n\r\n'
28+
buf = "GET / HTTP/1.1\r\nHost: google.com\r\n\r\n"
2429
writer.write(buf.encode())
2530
await writer.drain()
2631

27-
r = await reader.readline()
32+
await reader.readline()
2833
writer.close()
2934
await writer.wait_closed()
30-
31-
mock_out = b'HTTP/1.1 301 Moved Permanently\r\n'
32-
33-
test_name = 'test_asyncio_record'
34-
# This enables mocket to record the response
35-
Mocket.enable(test_name, ".")
3635

3736
loop = asyncio.get_event_loop()
3837
loop.set_debug(True)
3938
loop.run_until_complete(test_asyncio_connection())
4039

41-
dump_filename = f'./{test_name}.json'
42-
with io.open(dump_filename) as f:
40+
files = glob.glob(f"{self.temp_dir}/*.json")
41+
self.assertEqual(len(files), 1)
42+
43+
with io.open(files[0]) as f:
4344
responses = json.load(f)
4445

45-
assert len(responses["google.com"]["80"].keys()) == 1
46+
self.assertEqual(len(responses["google.com"]["80"].keys()), 1)
47+
48+
shutil.rmtree(self.temp_dir)

0 commit comments

Comments
 (0)