From 324d1de030ce3a4b2ff67d3200d4b7fb0397a044 Mon Sep 17 00:00:00 2001 From: "A. Jesse Jiryu Davis" Date: Sat, 30 Aug 2014 21:18:36 -0400 Subject: [PATCH] PYTHON-525 Update test_ssl for new MongoClient. --- test/test_ssl.py | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/test/test_ssl.py b/test/test_ssl.py index d102e3d3f..badd9b6b8 100644 --- a/test/test_ssl.py +++ b/test/test_ssl.py @@ -37,7 +37,12 @@ from pymongo.errors import (ConfigurationError, ConnectionFailure, OperationFailure) from pymongo.ssl_support import HAVE_SSL -from test import host, pair, port, SkipTest, unittest, client_knobs +from test import (client_knobs, + host, + pair, + port, + SkipTest, + unittest) from test.utils import server_started_with_auth, remove_all_users, connected from test.version import Version @@ -388,15 +393,15 @@ class TestSSL(unittest.TestCase): response = ssl_client.admin.command('ismaster') - try: - MongoClient(pair, - ssl=True, - ssl_certfile=CLIENT_PEM, - ssl_cert_reqs=ssl.CERT_REQUIRED, - ssl_ca_certs=CA_PEM) + with self.assertRaises(ConnectionFailure): + with client_knobs(server_wait_time=0.1): + connected(MongoClient(pair, + ssl=True, + ssl_certfile=CLIENT_PEM, + ssl_cert_reqs=ssl.CERT_REQUIRED, + ssl_ca_certs=CA_PEM)) + self.fail("Invalid hostname should have failed") - except CertificateError: - pass if 'setName' in response: try: @@ -455,8 +460,11 @@ class TestSSL(unittest.TestCase): uri = ('mongodb://%s@%s:%d/?authMechanism=' 'MONGODB-X509' % ( quote_plus("not the username"), host, port)) - self.assertRaises(ConfigurationError, MongoClient, uri, - ssl=True, ssl_certfile=CLIENT_PEM) + + bad_client = MongoClient(uri, ssl=True, ssl_certfile=CLIENT_PEM) + with self.assertRaises(OperationFailure): + bad_client.pymongo_test.test.find_one() + self.assertRaises(OperationFailure, ssl_client.admin.authenticate, "not the username", mechanism="MONGODB-X509") @@ -468,14 +476,16 @@ class TestSSL(unittest.TestCase): # These tests will raise SSLError (>= 3.2) or ConnectionFailure # (2.x) depending on where OpenSSL first sees the PEM file. try: - MongoClient(uri, ssl=True, ssl_certfile=CA_PEM) + with client_knobs(server_wait_time=0.1): + connected(MongoClient(uri, ssl=True, ssl_certfile=CA_PEM)) except (ssl.SSLError, ConnectionFailure): pass else: self.fail("Invalid certificate accepted.") try: - MongoClient(pair, ssl=True, ssl_certfile=CA_PEM) + with client_knobs(server_wait_time=0.1): + connected(MongoClient(pair, ssl=True, ssl_certfile=CA_PEM)) except (ssl.SSLError, ConnectionFailure): pass else: