Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DESCRIPTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne
- Improved security and robustness for the temporary credentials cache storage.
- Fixed a bug that caused driver to fail silently on `TO_DATE` arrow to python conversion when invalid date was followed by the correct one.
- Fixed expired S3 credentials update and increment retry when expired credentials are found.
- Deprecated `insecure_mode` connection property and replaced it with `disable_ocsp_checks` with the same behavior as the former property.

- v3.14.0(March 03, 2025)
- Bumped pyOpenSSL dependency upper boundary from <25.0.0 to <26.0.0.
Expand All @@ -38,7 +39,6 @@ Source code is also available at: https://github.com/snowflakedb/snowflake-conne
- Fixed a bug where file permission check happened on Windows.
- Added support for File types.
- Added `unsafe_file_write` connection parameter that restores the previous behaviour of saving files downloaded with GET with 644 permissions.
- Deprecated `insecure_mode` connection property and replaced it with `disable_ocsp_checks` with the same behavior as the former property.

- v3.13.2(January 29, 2025)
- Changed not to use scoped temporary objects.
Expand Down
1 change: 0 additions & 1 deletion src/snowflake/connector/ocsp_snowflake.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,6 @@ def _deserialize(cls, opened_fd) -> _OCSPResponseValidationResultCache:
OCSPResponseValidationResult,
] = _OCSPResponseValidationResultCache(
entry_lifetime=constants.DAY_IN_SECONDS,
file_timeout=60.0,
file_path={
"linux": os.path.join(
"~", ".cache", "snowflake", "ocsp_response_validation_cache.json"
Expand Down
8 changes: 0 additions & 8 deletions test/unit/test_ocsp.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,6 @@ def test_ocsp_bad_validity():
del environ["SF_TEST_OCSP_FORCE_BAD_RESPONSE_VALIDITY"]


@pytest.mark.flaky(reruns=3)
def test_ocsp_single_endpoint():
environ["SF_OCSP_ACTIVATE_NEW_ENDPOINT"] = "True"
SnowflakeOCSP.clear_cache()
Expand All @@ -281,7 +280,6 @@ def test_ocsp_by_post_method():
assert ocsp.validate(url, connection), f"Failed to validate: {url}"


@pytest.mark.flaky(reruns=3)
def test_ocsp_with_file_cache(tmpdir):
"""OCSP tests and the cache server and file."""
tmp_dir = str(tmpdir.mkdir("ocsp_response_cache"))
Expand All @@ -295,7 +293,6 @@ def test_ocsp_with_file_cache(tmpdir):
assert ocsp.validate(url, connection), f"Failed to validate: {url}"


@pytest.mark.flaky(reruns=3)
@pytest.mark.skipolddriver
def test_ocsp_with_bogus_cache_files(tmpdir, random_ocsp_response_validation_cache):
with mock.patch(
Expand Down Expand Up @@ -335,7 +332,6 @@ def test_ocsp_with_bogus_cache_files(tmpdir, random_ocsp_response_validation_cac
)


@pytest.mark.flaky(reruns=3)
@pytest.mark.skipolddriver
def test_ocsp_with_outdated_cache(tmpdir, random_ocsp_response_validation_cache):
with mock.patch(
Expand Down Expand Up @@ -396,7 +392,6 @@ def _store_cache_in_file(tmpdir, target_hosts=None):
return filename, target_hosts


@pytest.mark.flaky(reruns=3)
def test_ocsp_with_invalid_cache_file():
"""OCSP tests with an invalid cache file."""
SnowflakeOCSP.clear_cache() # reset the memory cache
Expand All @@ -406,7 +401,6 @@ def test_ocsp_with_invalid_cache_file():
assert ocsp.validate(url, connection), f"Failed to validate: {url}"


@pytest.mark.flaky(reruns=3)
@mock.patch(
"snowflake.connector.ocsp_snowflake.SnowflakeOCSP._fetch_ocsp_response",
side_effect=BrokenPipeError("fake error"),
Expand All @@ -429,7 +423,6 @@ def test_ocsp_cache_when_server_is_down(
assert not cache_data, "no cache should present because of broken pipe"


@pytest.mark.flaky(reruns=3)
def test_concurrent_ocsp_requests(tmpdir):
"""Run OCSP revocation checks in parallel. The memory and file caches are deleted randomly."""
cache_file_name = path.join(str(tmpdir), "cache_file.txt")
Expand Down Expand Up @@ -474,7 +467,6 @@ def test_ocsp_revoked_certificate():
assert ex.value.errno == ex.value.errno == ER_OCSP_RESPONSE_CERT_STATUS_REVOKED


@pytest.mark.flaky(reruns=3)
def test_ocsp_incomplete_chain():
"""Tests incomplete chained certificate."""
incomplete_chain_cert = path.join(
Expand Down
Loading