def test_key_and_cert(self, mock_opts, mock_load_pem, mock_priv_load_pem): """Assert if there's a client key and cert, the factory has both.""" tls_conf = { "keyfile": os.path.join(FIXTURES_DIR, "key.pem"), "certfile": os.path.join(FIXTURES_DIR, "cert.pem"), "ca_cert": os.path.join(FIXTURES_DIR, "ca_bundle.pem"), } with mock.patch.dict(config.conf, {"tls": tls_conf}): factory = _ssl_context_factory(mock.Mock(host="dummy_host")) mock_opts.assert_called_once_with( "dummy_host", trustRoot=mock_load_pem.return_value, clientCertificate=mock_priv_load_pem.return_value, extraCertificateOptions={"raiseMinimumTo": ssl.TLSVersion.TLSv1_2}, ) self.assertEqual(factory, mock_opts.return_value)
def test_no_key(self, mock_opts, mock_load_pem): """Assert if there's no client key, the factory isn't configured to use it.""" tls_conf = { "keyfile": None, "certfile": os.path.join(FIXTURES_DIR, "cert.pem"), "ca_cert": os.path.join(FIXTURES_DIR, "ca_bundle.pem"), } with mock.patch.dict(config.conf, {"tls": tls_conf}): factory = _ssl_context_factory(mock.Mock(host="dummy_host")) mock_opts.assert_called_once_with( "dummy_host", trustRoot=mock_load_pem.return_value, clientCertificate=None, extraCertificateOptions={ "raiseMinimumTo": twisted_ssl.TLSVersion.TLSv1_2 }, ) self.assertEqual(factory, mock_opts.return_value)