Skip to content
Closed
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
48 changes: 36 additions & 12 deletions .github/workflows/generated_pr_matrix.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
[
{
"os_image_name": "macos-latest",
"os_download_name": "macosx_x86_64",
"python-version": "3.12",
"cloud-provider": "aws"
},
{
"os_image_name": "macos-latest",
"os_download_name": "macosx_x86_64",
"python-version": "3.13",
"cloud-provider": "aws"
},
{
"os_image_name": "macos-latest",
"os_download_name": "macosx_x86_64",
"python-version": "3.14",
"cloud-provider": "aws"
},
{
"os_image_name": "ubuntu-latest",
"os_download_name": "manylinux_x86_64",
Expand All @@ -8,31 +26,37 @@
{
"os_image_name": "ubuntu-latest",
"os_download_name": "manylinux_x86_64",
"python-version": "3.14",
"python-version": "3.10",
"cloud-provider": "aws"
},
{
"os_image_name": "macos-latest",
"os_download_name": "macosx_x86_64",
"python-version": "3.9",
"cloud-provider": "azure"
"os_image_name": "ubuntu-latest",
"os_download_name": "manylinux_x86_64",
"python-version": "3.11",
"cloud-provider": "aws"
},
{
"os_image_name": "macos-latest",
"os_download_name": "macosx_x86_64",
"python-version": "3.14",
"cloud-provider": "azure"
"os_image_name": "ubuntu-latest",
"os_download_name": "manylinux_x86_64",
"python-version": "3.12",
"cloud-provider": "aws"
},
{
"os_image_name": "windows-latest",
"os_download_name": "win_amd64",
"python-version": "3.9",
"cloud-provider": "gcp"
"cloud-provider": "aws"
},
{
"os_image_name": "windows-latest",
"os_download_name": "win_amd64",
"python-version": "3.14",
"cloud-provider": "gcp"
"python-version": "3.12",
"cloud-provider": "aws"
},
{
"os_image_name": "windows-latest",
"os_download_name": "win_amd64",
"python-version": "3.13",
"cloud-provider": "aws"
}
]
17 changes: 10 additions & 7 deletions ci/generate_full_matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,16 @@ def generate_matrix(pr_only: bool = False):
matrix = []

if pr_only:
csp_to_test = list(CSP)
for system in OperatingSystem:
os_config = system.value
csp_name = csp_to_test.pop(0).value if csp_to_test else CSP.AWS.value
for py_version in Python:
if py_version.value.test_on_pr:
_add_to_matrix(matrix, os_config, csp_name, py_version.value)
pr_jobs = [
(OperatingSystem.MACOS, ["3.12", "3.13", "3.14"]),
(OperatingSystem.UBUNTU, ["3.9", "3.10", "3.11", "3.12"]),
(OperatingSystem.WINDOWS, ["3.9", "3.12", "3.13"]),
]
py_by_ver = {p.value.version: p.value for p in Python}
for os_enum, versions in pr_jobs:
for ver in versions:
if ver in py_by_ver:
_add_to_matrix(matrix, os_enum.value, CSP.AWS.value, py_by_ver[ver])
else:
operating_systems = [os_enum.value for os_enum in OperatingSystem]
python_versions = [py_enum.value for py_enum in Python]
Expand Down
15 changes: 8 additions & 7 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ extras =
package = wheel
setenv =
COVERAGE_FILE = {env:COVERAGE_FILE:{toxworkdir}/.coverage.{envname}}
ci: SNOWFLAKE_PYTEST_OPTS = -vvv
ci: SNOWFLAKE_PYTEST_OPTS =
# Set test type, either notset, unit, integ, or both
unit-integ: SNOWFLAKE_TEST_TYPE = (unit or integ)
!unit-!integ: SNOWFLAKE_TEST_TYPE = (unit or integ)
Expand All @@ -40,7 +40,7 @@ setenv =
unit: SNOWFLAKE_TEST_TYPE = unit
integ: SNOWFLAKE_TEST_TYPE = integ
single: SNOWFLAKE_TEST_TYPE = single
parallel: SNOWFLAKE_PYTEST_OPTS = {env:SNOWFLAKE_PYTEST_OPTS:} -n auto
parallel: SNOWFLAKE_PYTEST_OPTS = {env:SNOWFLAKE_PYTEST_OPTS:} -n auto --dist worksteal
# Add common parts into pytest command
SNOWFLAKE_PYTEST_COV_LOCATION = {env:JUNIT_REPORT_DIR:{toxworkdir}}/junit.{envname}-{env:cloud_provider:dev}.xml
SNOWFLAKE_PYTEST_COV_CMD = --cov snowflake.connector --junitxml {env:SNOWFLAKE_PYTEST_COV_LOCATION} --cov-report=
Expand Down Expand Up @@ -94,12 +94,12 @@ deps =
skip_install = True
setenv =
{[testenv]setenv}
SNOWFLAKE_PYTEST_OPTS = {env:SNOWFLAKE_PYTEST_OPTS:} -n auto
SNOWFLAKE_PYTEST_OPTS = {env:SNOWFLAKE_PYTEST_OPTS:} -n auto --dist worksteal
passenv = {[testenv]passenv}
commands =
# Unit and pandas tests are already skipped for the old driver (see test/conftest.py). Avoid walking those
# directories entirely to avoid loading any potentially incompatible subdirectories' own conftest.py files.
{env:SNOWFLAKE_PYTEST_CMD_IGNORE_AIO} --ignore=test/unit --ignore=test/pandas -m "not skipolddriver" -vvv {posargs:} test
{env:SNOWFLAKE_PYTEST_CMD_IGNORE_AIO} --ignore=test/unit --ignore=test/pandas -m "not skipolddriver" {posargs:} test

[testenv:noarrowextension]
basepython = python3.9
Expand All @@ -119,8 +119,8 @@ extras=
pandas
secure-local-storage
commands =
{env:SNOWFLAKE_PYTEST_CMD} -n auto -m "aio and unit and not sso and not pandas and not lambda" -vvv {posargs:} test
{env:SNOWFLAKE_PYTEST_CMD} -n auto -m "aio and unit and not sso and not pandas and not lambda" -vvv {posargs:} test
{env:SNOWFLAKE_PYTEST_CMD} -n auto --dist worksteal -m "aio and unit and not sso and not pandas and not lambda" {posargs:} test
{env:SNOWFLAKE_PYTEST_CMD} -n auto --dist worksteal -m "aio and unit and not sso and not pandas and not lambda" {posargs:} test

[testenv:aio-unsupported-python]
description = Run aio connector on unsupported python versions
Expand Down Expand Up @@ -185,8 +185,9 @@ depends = py39, py310, py311, py312, py313, py314

[pytest]
log_level = info
addopts = -ra --strict-markers
addopts = -ra --strict-markers -vvv
junit_family = xunit2
timeout = 1200
filterwarnings =
error::UserWarning:cryptography.*
error::cryptography.utils.CryptographyDeprecationWarning
Expand Down
Loading