diff --git a/adbc_drivers_validation/model.py b/adbc_drivers_validation/model.py index 9c81743..ea62810 100644 --- a/adbc_drivers_validation/model.py +++ b/adbc_drivers_validation/model.py @@ -151,6 +151,8 @@ class DriverFeatures(BaseModel): quirk_get_objects_constraints_foreign_normalized: bool = Field(default=False) quirk_get_objects_constraints_primary_normalized: bool = Field(default=False) quirk_get_objects_constraints_unique_normalized: bool = Field(default=False) + # Some backends report zero for every ordinary DML statement (ex: Databend) + quirk_statement_rows_affected_dml_returns_zero: bool = Field(default=False) def __init__(self, **data: typing.Any) -> None: super().__init__(**data) diff --git a/adbc_drivers_validation/tests/connection.py b/adbc_drivers_validation/tests/connection.py index 7cf7835..53276cd 100644 --- a/adbc_drivers_validation/tests/connection.py +++ b/adbc_drivers_validation/tests/connection.py @@ -103,7 +103,7 @@ def generate_tests( elif not f.get_objects and metafunc.definition.name.startswith( "test_get_objects_" ): - marks.append(pytest.mark.xfail(reason="not implemented")) + marks.append(pytest.mark.skip(reason="not implemented")) combinations.append(pytest.param(driver_param, id=driver_param, marks=marks)) metafunc.parametrize( diff --git a/adbc_drivers_validation/tests/statement.py b/adbc_drivers_validation/tests/statement.py index 01fe590..8e3e07f 100644 --- a/adbc_drivers_validation/tests/statement.py +++ b/adbc_drivers_validation/tests/statement.py @@ -249,7 +249,10 @@ def test_rows_affected( ) rows_affected = cursor.adbc_statement.execute_update() if driver.features.statement_rows_affected: - assert rows_affected == 1 + if driver.features.quirk_statement_rows_affected_dml_returns_zero: + assert rows_affected == 0 + else: + assert rows_affected == 1 else: assert rows_affected == -1 @@ -258,7 +261,10 @@ def test_rows_affected( ) rows_affected = cursor.adbc_statement.execute_update() if driver.features.statement_rows_affected: - assert rows_affected == 1 + if driver.features.quirk_statement_rows_affected_dml_returns_zero: + assert rows_affected == 0 + else: + assert rows_affected == 1 else: assert rows_affected == -1 @@ -267,7 +273,10 @@ def test_rows_affected( ) rows_affected = cursor.adbc_statement.execute_update() if driver.features.statement_rows_affected: - assert rows_affected == 1 + if driver.features.quirk_statement_rows_affected_dml_returns_zero: + assert rows_affected == 0 + else: + assert rows_affected == 1 else: assert rows_affected == -1