Skip to content

Instantly share code, notes, and snippets.

@amoeba
Created April 28, 2026 23:21
Show Gist options
  • Select an option

  • Save amoeba/ff2d0f001e6a1e1dae14f7cacb39181f to your computer and use it in GitHub Desktop.

Select an option

Save amoeba/ff2d0f001e6a1e1dae14f7cacb39181f to your computer and use it in GitHub Desktop.
diff --git a/go/validation/pytest.ini b/go/validation/pytest.ini
index 49b4b9d..becdba0 100644
--- a/go/validation/pytest.ini
+++ b/go/validation/pytest.ini
@@ -19,6 +19,7 @@ xfail_strict = true
markers =
feature: test for a driver-specific feature
+ requires_features: skip test if driver does not support the listed features
filterwarnings =
error
diff --git a/go/validation/tests/conftest.py b/go/validation/tests/conftest.py
index bf53fc9..c44b51b 100644
--- a/go/validation/tests/conftest.py
+++ b/go/validation/tests/conftest.py
@@ -28,7 +28,6 @@ from adbc_drivers_validation.tests.conftest import ( # noqa: F401
from . import mysql
-
def pytest_addoption(parser):
adbc_drivers_validation.tests.conftest.pytest_addoption(parser)
parser.addoption("--vendor-version", action="store", default="9.4")
@@ -36,9 +35,9 @@ def pytest_addoption(parser):
@pytest.fixture(scope="session")
def driver(request, pytestconfig) -> adbc_drivers_validation.model.DriverQuirks:
- driver = request.param
- assert driver.startswith("mysql:")
- return mysql.get_quirks(pytestconfig.getoption("vendor_version"))
+ param = request.param
+ vendor, _, version = param.partition(":")
+ return mysql.get_quirks(version, vendor=vendor)
@pytest.fixture(scope="session")
diff --git a/go/validation/tests/generate_documentation.py b/go/validation/tests/generate_documentation.py
index 6b6a9fd..266e79d 100644
--- a/go/validation/tests/generate_documentation.py
+++ b/go/validation/tests/generate_documentation.py
@@ -29,6 +29,7 @@ if __name__ == "__main__":
reports = [report.resolve() for report in Path(".").glob("validation-report*.xml")]
generate_documentation.generate(
+ "mysql",
mysql.get_quirks,
reports,
template,
diff --git a/go/validation/tests/mysql.py b/go/validation/tests/mysql.py
index c48edd4..f9d3ce8 100644
--- a/go/validation/tests/mysql.py
+++ b/go/validation/tests/mysql.py
@@ -86,9 +86,17 @@ class MySQLQuirks(model.DriverQuirks):
return name
+class MariaDBQuirks(MySQLQuirks):
+ name = "mariadb"
+ vendor_name = "MariaDB"
+ vendor_version = "11.4.0 (MariaDB Community Server)"
+ short_version = "11.4"
+
+
@functools.cache
-def get_quirks(version: str) -> model.DriverQuirks:
+def get_quirks(version: str, *, vendor: str = "mysql") -> model.DriverQuirks:
+ if vendor == "mariadb":
+ return MariaDBQuirks()
if version == "9.4":
return MySQLQuirks()
- else:
- raise ValueError(f"unsupported MySQL version: {version}")
+ raise ValueError(f"unsupported MySQL version: {version}")
diff --git a/go/validation/tests/test_connection.py b/go/validation/tests/test_connection.py
index d49d25c..91343cf 100644
--- a/go/validation/tests/test_connection.py
+++ b/go/validation/tests/test_connection.py
@@ -21,5 +21,8 @@ from . import mysql
def pytest_generate_tests(metafunc) -> None:
- quirks = [mysql.get_quirks(metafunc.config.getoption("vendor_version"))]
+ quirks = [
+ mysql.get_quirks("9.4", vendor="mysql"),
+ mysql.get_quirks("11.4", vendor="mariadb"),
+ ]
return adbc_drivers_validation.tests.connection.generate_tests(quirks, metafunc)
diff --git a/go/validation/tests/test_ingest.py b/go/validation/tests/test_ingest.py
index 896c7f9..b75616f 100644
--- a/go/validation/tests/test_ingest.py
+++ b/go/validation/tests/test_ingest.py
@@ -18,7 +18,10 @@ from . import mysql
def pytest_generate_tests(metafunc) -> None:
- quirks = [mysql.get_quirks(metafunc.config.getoption("vendor_version"))]
+ quirks = [
+ mysql.get_quirks("9.4", vendor="mysql"),
+ mysql.get_quirks("11.4", vendor="mariadb"),
+ ]
return adbc_drivers_validation.tests.ingest.generate_tests(quirks, metafunc)
diff --git a/go/validation/tests/test_query.py b/go/validation/tests/test_query.py
index 240d5ed..c8a01d2 100644
--- a/go/validation/tests/test_query.py
+++ b/go/validation/tests/test_query.py
@@ -21,5 +21,8 @@ from . import mysql
def pytest_generate_tests(metafunc) -> None:
- quirks = [mysql.get_quirks(metafunc.config.getoption("vendor_version"))]
+ quirks = [
+ mysql.get_quirks("9.4", vendor="mysql"),
+ mysql.get_quirks("11.4", vendor="mariadb"),
+ ]
return adbc_drivers_validation.tests.query.generate_tests(quirks, metafunc)
diff --git a/go/validation/tests/test_statement.py b/go/validation/tests/test_statement.py
index f5f7576..df02345 100644
--- a/go/validation/tests/test_statement.py
+++ b/go/validation/tests/test_statement.py
@@ -21,5 +21,8 @@ from . import mysql
def pytest_generate_tests(metafunc) -> None:
- quirks = [mysql.get_quirks(metafunc.config.getoption("vendor_version"))]
+ quirks = [
+ mysql.get_quirks("9.4", vendor="mysql"),
+ mysql.get_quirks("11.4", vendor="mariadb"),
+ ]
return adbc_drivers_validation.tests.statement.generate_tests(quirks, metafunc)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment