aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmproxy/proxy/config.py7
-rw-r--r--test/test_proxy.py2
-rw-r--r--test/test_server.py31
-rw-r--r--test/tservers.py2
4 files changed, 20 insertions, 22 deletions
diff --git a/libmproxy/proxy/config.py b/libmproxy/proxy/config.py
index f06e55ca..b1478655 100644
--- a/libmproxy/proxy/config.py
+++ b/libmproxy/proxy/config.py
@@ -133,12 +133,9 @@ def process_proxy_options(parser, options):
if options.clientcerts:
options.clientcerts = os.path.expanduser(options.clientcerts)
- if not (os.path.exists(options.clientcerts) or
- os.path.isdir(options.clientcerts) or
- os.path.isfile(options.clientcerts)):
+ if not os.path.exists(options.clientcerts):
return parser.error(
- "Client certificate argument is not a file or directory, "
- "or does not exist: %s" % options.clientcerts
+ "Client certificate path does not exist: %s" % options.clientcerts
)
if options.auth_nonanonymous or options.auth_singleuser or options.auth_htpasswd:
diff --git a/test/test_proxy.py b/test/test_proxy.py
index a0530c79..b498c800 100644
--- a/test/test_proxy.py
+++ b/test/test_proxy.py
@@ -104,7 +104,7 @@ class TestProcessProxyOptions:
"--client-certs",
os.path.join(tutils.test_data.path("data/clientcert"), "client.pem"))
self.assert_err(
- "not a file or directory",
+ "path does not exist",
"--client-certs",
"nonexistent")
diff --git a/test/test_server.py b/test/test_server.py
index 09cfa381..85c766eb 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -314,21 +314,24 @@ class TestHTTPAuth(tservers.HTTPProxTest):
class TestHTTPS(tservers.HTTPProxTest, CommonMixin, TcpMixin):
ssl = True
ssloptions = pathod.SSLOptions(request_client_cert=True)
- clientcerts = True
-
- def test_clientcert(self):
- self.config.clientcerts = os.path.join(
- tutils.test_data.path("data/clientcert"), "client.pem")
- f = self.pathod("304")
- assert f.status_code == 304
- assert self.server.last_log()["request"]["clientcert"]["keyinfo"]
-
- def test_clientcerts(self):
- self.config.clientcerts = tutils.test_data.path("data/clientcert")
- f = self.pathod("304")
- assert f.status_code == 304
- assert self.server.last_log()["request"]["clientcert"]["keyinfo"]
+ def test_clientcert_file(self):
+ try:
+ self.config.clientcerts = os.path.join(
+ tutils.test_data.path("data/clientcert"), "client.pem")
+ f = self.pathod("304")
+ assert f.status_code == 304
+ assert self.server.last_log()["request"]["clientcert"]["keyinfo"]
+ finally:
+ self.config.clientcerts = None
+ def test_clientcert_dir(self):
+ try:
+ self.config.clientcerts = tutils.test_data.path("data/clientcert")
+ f = self.pathod("304")
+ assert f.status_code == 304
+ assert self.server.last_log()["request"]["clientcert"]["keyinfo"]
+ finally:
+ self.config.clientcerts = None
def test_error_post_connect(self):
p = self.pathoc()
assert p.request("get:/:i0,'invalid\r\n\r\n'").status_code == 400
diff --git a/test/tservers.py b/test/tservers.py
index 8e60df60..5963667b 100644
--- a/test/tservers.py
+++ b/test/tservers.py
@@ -83,7 +83,6 @@ class ProxTestBase(object):
# Test Configuration
ssl = None
ssloptions = False
- clientcerts = False
no_upstream_cert = False
authenticator = None
masterclass = TestMaster
@@ -130,7 +129,6 @@ class ProxTestBase(object):
no_upstream_cert = cls.no_upstream_cert,
cadir = cls.cadir,
authenticator = cls.authenticator,
- clientcerts = tutils.test_data.path("data/clientcert") if cls.clientcerts else None
)