fix(auth): Add temporary patch to workload cert logic to accomodate C… · googleapis/google-auth-library-python@78de790
@@ -334,6 +334,93 @@ def test_success_with_certificate_config(
334334assert key == pytest.private_key_bytes
335335assert passphrase is None
336336337+@mock.patch(
338+ "google.auth.transport._mtls_helper._read_cert_and_key_files", autospec=True
339+ )
340+@mock.patch(
341+ "google.auth.transport._mtls_helper._get_cert_config_path", autospec=True
342+ )
343+@mock.patch("google.auth.transport._mtls_helper._load_json_file", autospec=True)
344+@mock.patch("google.auth.transport._mtls_helper._check_config_path", autospec=True)
345+def test_success_with_certificate_config_cloud_run_patch(
346+self,
347+mock_check_config_path,
348+mock_load_json_file,
349+mock_get_cert_config_path,
350+mock_read_cert_and_key_files,
351+ ):
352+cert_config_path = "/path/to/config"
353+mock_check_config_path.return_value = cert_config_path
354+mock_load_json_file.return_value = {
355+"cert_configs": {
356+"workload": {
357+"cert_path": _mtls_helper._INCORRECT_CLOUD_RUN_CERT_PATH,
358+"key_path": _mtls_helper._INCORRECT_CLOUD_RUN_KEY_PATH,
359+ }
360+ }
361+ }
362+mock_get_cert_config_path.return_value = cert_config_path
363+mock_read_cert_and_key_files.return_value = (
364+pytest.public_cert_bytes,
365+pytest.private_key_bytes,
366+ )
367+368+has_cert, cert, key, passphrase = _mtls_helper.get_client_ssl_credentials()
369+assert has_cert
370+assert cert == pytest.public_cert_bytes
371+assert key == pytest.private_key_bytes
372+assert passphrase is None
373+374+mock_read_cert_and_key_files.assert_called_once_with(
375+_mtls_helper._WELL_KNOWN_CLOUD_RUN_CERT_PATH,
376+_mtls_helper._WELL_KNOWN_CLOUD_RUN_KEY_PATH,
377+ )
378+379+@mock.patch("os.path.exists", autospec=True)
380+@mock.patch(
381+ "google.auth.transport._mtls_helper._read_cert_and_key_files", autospec=True
382+ )
383+@mock.patch(
384+ "google.auth.transport._mtls_helper._get_cert_config_path", autospec=True
385+ )
386+@mock.patch("google.auth.transport._mtls_helper._load_json_file", autospec=True)
387+@mock.patch("google.auth.transport._mtls_helper._check_config_path", autospec=True)
388+def test_success_with_certificate_config_cloud_run_patch_skipped_if_cert_exists(
389+self,
390+mock_check_config_path,
391+mock_load_json_file,
392+mock_get_cert_config_path,
393+mock_read_cert_and_key_files,
394+mock_os_path_exists,
395+ ):
396+cert_config_path = "/path/to/config"
397+mock_check_config_path.return_value = cert_config_path
398+mock_os_path_exists.return_value = True
399+mock_load_json_file.return_value = {
400+"cert_configs": {
401+"workload": {
402+"cert_path": _mtls_helper._INCORRECT_CLOUD_RUN_CERT_PATH,
403+"key_path": _mtls_helper._INCORRECT_CLOUD_RUN_KEY_PATH,
404+ }
405+ }
406+ }
407+mock_get_cert_config_path.return_value = cert_config_path
408+mock_read_cert_and_key_files.return_value = (
409+pytest.public_cert_bytes,
410+pytest.private_key_bytes,
411+ )
412+413+has_cert, cert, key, passphrase = _mtls_helper.get_client_ssl_credentials()
414+assert has_cert
415+assert cert == pytest.public_cert_bytes
416+assert key == pytest.private_key_bytes
417+assert passphrase is None
418+419+mock_read_cert_and_key_files.assert_called_once_with(
420+_mtls_helper._INCORRECT_CLOUD_RUN_CERT_PATH,
421+_mtls_helper._INCORRECT_CLOUD_RUN_KEY_PATH,
422+ )
423+337424@mock.patch(
338425 "google.auth.transport._mtls_helper._get_workload_cert_and_key", autospec=True
339426 )