Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions mocket/mocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,20 +39,25 @@

class SuperFakeSSLContext(object):
""" For Python 3.6 """
class FakeSetter(object):
class FakeSetter(int):
def __set__(self, *args):
pass
options = FakeSetter()
verify_mode = FakeSetter()
verify_mode = FakeSetter(ssl.CERT_OPTIONAL)


class FakeSSLContext(SuperFakeSSLContext):
def __init__(self, sock=None, server_hostname=None, **kwargs):
self.sock = sock
self.sock._host = server_hostname
def __init__(self, sock=None, server_hostname=None, *args, **kwargs):
if isinstance(sock, MocketSocket):
self.sock = sock
self.sock._host = server_hostname

@staticmethod
def fake_wrap_socket(sock, *args, **kwargs):
def load_default_certs(*args, **kwargs):
pass

@staticmethod
def wrap_socket(sock, *args, **kwargs):
return sock

def __getattr__(self, name):
Expand Down Expand Up @@ -246,7 +251,7 @@ def enable():
socket.getaddrinfo = socket.__dict__['getaddrinfo'] = \
lambda host, port, family=None, socktype=None, proto=None, flags=None: [(2, 1, 6, '', (host, port))]
socket.inet_aton = socket.__dict__['inet_aton'] = socket.gethostbyname
ssl.wrap_socket = ssl.__dict__['wrap_socket'] = FakeSSLContext.fake_wrap_socket
ssl.wrap_socket = ssl.__dict__['wrap_socket'] = FakeSSLContext.wrap_socket
ssl.SSLSocket = ssl.__dict__['SSLSocket'] = MocketSocket
ssl.SSLContext = ssl.__dict__['SSLSocket'] = FakeSSLContext

Expand Down
5 changes: 4 additions & 1 deletion tests/test_https.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import json
from . import urlopen

from mocket.mocket import mocketize
from mocket.mockhttp import Entry

import requests
import pytest

Expand All @@ -27,6 +29,7 @@ def test_json(response):
)

mocked_response = requests.get(url_to_mock).json()

assert response == mocked_response

mocked_response = json.loads(urlopen(url_to_mock).read().decode('utf-8'))
assert response == mocked_response