You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.7 KiB
56 lines
1.7 KiB
import pytest |
|
import mangle |
|
import twisted.internet |
|
import twisted.test |
|
|
|
from proxy import ProxyClient, ProxyClientFactory, ProxyServer |
|
from testutil import mock_deferred, func_deleted, no_tcp, ignore_tcp, no_database, func_ignored |
|
from twisted.internet.protocol import ServerFactory |
|
from twisted.test.iosim import FakeTransport |
|
from twisted.internet import defer, reactor |
|
|
|
#################### |
|
## Fixtures |
|
|
|
@pytest.fixture |
|
def proxyserver(monkeypatch): |
|
monkeypatch.setattr("twisted.test.iosim.FakeTransport.startTLS", func_ignored) |
|
factory = ServerFactory() |
|
factory.protocol = ProxyServer |
|
protocol = factory.buildProtocol(('127.0.0.1', 0)) |
|
protocol.makeConnection(FakeTransport(protocol, True)) |
|
return protocol |
|
|
|
## Autorun fixtures |
|
|
|
@pytest.fixture(autouse=True) |
|
def no_mangle(monkeypatch): |
|
# Don't call anything in mangle.py |
|
monkeypatch.setattr("mangle.mangle_request", func_deleted) |
|
monkeypatch.setattr("mangle.mangle_response", func_deleted) |
|
|
|
#################### |
|
## Unit test tests |
|
|
|
def test_proxy_server_fixture(proxyserver): |
|
proxyserver.transport.write('hello') |
|
assert proxyserver.transport.getOutBuffer() == 'hello' |
|
|
|
@pytest.inlineCallbacks |
|
def test_mock_deferreds(mock_deferred): |
|
d = mock_deferred('Hello!') |
|
r = yield d |
|
assert r == 'Hello!' |
|
|
|
def test_deleted(): |
|
with pytest.raises(NotImplementedError): |
|
reactor.connectTCP("www.google.com", "80", ServerFactory) |
|
|
|
#################### |
|
## Proxy Server Tests |
|
|
|
def test_proxy_server_connect(proxyserver): |
|
proxyserver.lineReceived('CONNECT www.dddddd.fff:433 HTTP/1.1') |
|
proxyserver.lineReceived('') |
|
assert proxyserver.transport.getOutBuffer() == 'HTTP/1.1 200 Connection established\r\n\r\n' |
|
#assert starttls got called
|
|
|