aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test_certutils.py9
-rw-r--r--test/test_http.py22
-rw-r--r--test/test_http_auth.py25
-rw-r--r--test/test_tcp.py24
4 files changed, 53 insertions, 27 deletions
diff --git a/test/test_certutils.py b/test/test_certutils.py
index 0b4baf75..7a00caca 100644
--- a/test/test_certutils.py
+++ b/test/test_certutils.py
@@ -32,15 +32,6 @@ class TestCertStore:
assert c.get_cert("foo.com", [], ca)
assert c.get_cert("*.foo.com", [], ca)
- def test_check_domain(self):
- c = certutils.CertStore()
- assert c.check_domain("foo")
- assert c.check_domain("\x01foo")
- assert not c.check_domain("\xfefoo")
- assert not c.check_domain("xn--\0")
- assert not c.check_domain("foo..foo")
- assert not c.check_domain("foo/foo")
-
class TestDummyCert:
def test_with_ca(self):
diff --git a/test/test_http.py b/test/test_http.py
index 62d0c3dc..4d89bf24 100644
--- a/test/test_http.py
+++ b/test/test_http.py
@@ -38,28 +38,16 @@ def test_read_chunked():
tutils.raises("too large", http.read_chunked, 500, s, 2)
-def test_request_connection_close():
+def test_connection_close():
h = odict.ODictCaseless()
- assert http.request_connection_close((1, 0), h)
- assert not http.request_connection_close((1, 1), h)
+ assert http.connection_close((1, 0), h)
+ assert not http.connection_close((1, 1), h)
h["connection"] = ["keep-alive"]
- assert not http.request_connection_close((1, 1), h)
+ assert not http.connection_close((1, 1), h)
h["connection"] = ["close"]
- assert http.request_connection_close((1, 1), h)
-
-
-def test_response_connection_close():
- h = odict.ODictCaseless()
- assert http.response_connection_close((1, 1), h)
-
- h["content-length"] = [10]
- assert not http.response_connection_close((1, 1), h)
-
- h["connection"] = ["close"]
- assert http.response_connection_close((1, 1), h)
-
+ assert http.connection_close((1, 1), h)
def test_read_http_body_response():
h = odict.ODictCaseless()
diff --git a/test/test_http_auth.py b/test/test_http_auth.py
index cae69f5e..8238d4ca 100644
--- a/test/test_http_auth.py
+++ b/test/test_http_auth.py
@@ -1,5 +1,6 @@
import binascii, cStringIO
from netlib import odict, http_auth, http
+import mock
import tutils
class TestPassManNonAnon:
@@ -17,7 +18,7 @@ class TestPassManHtpasswd:
tutils.raises("invalid htpasswd", http_auth.PassManHtpasswd, s)
def test_simple(self):
- f = open(tutils.test_data.path("data/htpasswd"))
+ f = open(tutils.test_data.path("data/htpasswd"),"rb")
pm = http_auth.PassManHtpasswd(f)
vals = ("basic", "test", "test")
@@ -79,3 +80,25 @@ class TestBasicProxyAuth:
hdrs[ba.AUTH_HEADER] = [http.assemble_http_basic_auth(*vals)]
assert not ba.authenticate(hdrs)
+
+class Bunch: pass
+
+class TestAuthAction:
+ def test_nonanonymous(self):
+ m = Bunch()
+ aa = http_auth.NonanonymousAuthAction(None, None)
+ aa(None, m, None, None)
+ assert m.authenticator
+
+ def test_singleuser(self):
+ m = Bunch()
+ aa = http_auth.SingleuserAuthAction(None, None)
+ aa(None, m, "foo:bar", None)
+ assert m.authenticator
+ tutils.raises("invalid", aa, None, m, "foo", None)
+
+ def test_httppasswd(self):
+ m = Bunch()
+ aa = http_auth.HtpasswdAuthAction(None, None)
+ aa(None, m, tutils.test_data.path("data/htpasswd"), None)
+ assert m.authenticator
diff --git a/test/test_tcp.py b/test/test_tcp.py
index 318d2abc..f45acb00 100644
--- a/test/test_tcp.py
+++ b/test/test_tcp.py
@@ -34,6 +34,14 @@ class CertHandler(tcp.BaseHandler):
self.wfile.flush()
+class ClientCipherListHandler(tcp.BaseHandler):
+ sni = None
+
+ def handle(self):
+ self.wfile.write("%s"%self.connection.get_cipher_list())
+ self.wfile.flush()
+
+
class DisconnectHandler(tcp.BaseHandler):
def handle(self):
self.close()
@@ -180,6 +188,22 @@ class TestSNI(test.ServerTestBase):
assert c.rfile.readline() == "foo.com"
+class TestClientCipherList(test.ServerTestBase):
+ handler = ClientCipherListHandler
+ ssl = dict(
+ cert = tutils.test_data.path("data/server.crt"),
+ key = tutils.test_data.path("data/server.key"),
+ request_client_cert = False,
+ v3_only = False,
+ cipher_list = 'RC4-SHA'
+ )
+ def test_echo(self):
+ c = tcp.TCPClient("127.0.0.1", self.port)
+ c.connect()
+ c.convert_to_ssl(sni="foo.com")
+ assert c.rfile.readline() == "['RC4-SHA']"
+
+
class TestSSLDisconnect(test.ServerTestBase):
handler = DisconnectHandler
ssl = dict(