PYTHON-4209 Ensure that no error is raised for unknown auth mechanism (#1981)

This commit is contained in:
Steven Silvester 2024-10-29 11:08:22 -05:00 committed by GitHub
parent 00c29600de
commit dfb6a9a4f3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -229,6 +229,39 @@ class TestHandshake(unittest.TestCase):
future()
return
def test_client_handshake_saslSupportedMechs_unknown(self):
server = MockupDB()
server.run()
self.addCleanup(server.stop)
primary_response = OpReply(
"ismaster",
True,
minWireVersion=2,
maxWireVersion=MIN_SUPPORTED_WIRE_VERSION,
saslSupportedMechs=["SCRAM-SHA-256", "does_not_exist"],
)
client = MongoClient(
server.uri, authmechanism="PLAIN", username="username", password="password"
)
self.addCleanup(client.close)
# New monitoring connections send data during handshake.
heartbeat = server.receives("ismaster")
heartbeat.ok(primary_response)
future = go(client.db.command, "whatever")
for request in server:
if request.matches("ismaster"):
request.ok(primary_response)
elif request.matches("saslStart"):
request.ok("saslStart", True, conversationId=1, payload=b"", done=True, ok=1)
else:
request.ok()
future()
return
def test_handshake_load_balanced(self):
self.hello_with_option_helper(OpMsg, loadBalanced=True)
with self.assertRaisesRegex(AssertionError, "does not match"):