Skip to content

Commit 41ca39e

Browse files
test: Reference a duckdb version with wheels (#2206)
A release was deleted from PYPI :/
1 parent 4a4fddb commit 41ca39e

File tree

4 files changed

+69
-42
lines changed

4 files changed

+69
-42
lines changed

noxfile.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@
5454
]
5555

5656

57+
def _clean_py312_deps(session: Session, dependencies: list[str]) -> None:
58+
"""Clean dependencies for Python 3.12."""
59+
if session.python == "3.12":
60+
dependencies.remove("duckdb")
61+
dependencies.remove("duckdb-engine")
62+
63+
5764
@session(python=main_python_version)
5865
def mypy(session: Session) -> None:
5966
"""Check types with mypy."""
@@ -79,6 +86,7 @@ def mypy(session: Session) -> None:
7986
@session(python=python_versions)
8087
def tests(session: Session) -> None:
8188
"""Execute pytest tests and compute coverage."""
89+
_clean_py312_deps(session, test_dependencies)
8290
session.install(".[s3,parquet]")
8391
session.install(*test_dependencies)
8492

@@ -112,6 +120,7 @@ def tests(session: Session) -> None:
112120
@session(python=main_python_version)
113121
def benches(session: Session) -> None:
114122
"""Run benchmarks."""
123+
_clean_py312_deps(session, test_dependencies)
115124
session.install(".[s3]")
116125
session.install(*test_dependencies)
117126
sqlalchemy_version = os.environ.get("SQLALCHEMY_VERSION")
@@ -134,6 +143,7 @@ def update_snapshots(session: Session) -> None:
134143
"""Update pytest snapshots."""
135144
args = session.posargs or ["-m", "snapshot"]
136145

146+
_clean_py312_deps(session, test_dependencies)
137147
session.install(".")
138148
session.install(*test_dependencies)
139149
session.run("pytest", "--snapshot-update", *args)

poetry.lock

Lines changed: 49 additions & 40 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,9 @@ parquet = ["numpy", "pyarrow"]
111111
[tool.poetry.group.dev.dependencies]
112112
coverage = {extras = ["toml"], version = ">=7.4"}
113113

114-
duckdb = { version = ">=0.9.3.dev2490", allow-prereleases = true }
115-
duckdb-engine = { version = ">=0.9.4" }
114+
# TODO: Remove the Python 3.12 marker when DuckDB supports it
115+
duckdb = { version = ">=0.8.0", python = "<3.12" }
116+
duckdb-engine = { version = ">=0.9.4", python = "<3.12" }
116117

117118
mypy = ">=1.0"
118119
pytest-benchmark = ">=4.0.0"

tests/core/test_connector_sql.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
from __future__ import annotations
22

3+
import sys
34
import typing as t
45
from decimal import Decimal
56
from unittest import mock
67

78
import pytest
89
import sqlalchemy as sa
910
from sqlalchemy.dialects import registry, sqlite
11+
from sqlalchemy.exc import NoSuchModuleError
1012

1113
from singer_sdk.connectors import SQLConnector
1214
from singer_sdk.exceptions import ConfigValidationError
@@ -308,6 +310,11 @@ def get_column_alter_ddl(
308310
)
309311

310312

313+
@pytest.mark.xfail(
314+
reason="DuckDB does not build on Python 3.12 yet",
315+
condition=sys.version_info >= (3, 12),
316+
raises=NoSuchModuleError,
317+
)
311318
class TestDuckDBConnector:
312319
@pytest.fixture
313320
def connector(self):

0 commit comments

Comments
 (0)