From b4089b6d68a889f6043c23684e528e759ba0d185 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 2 Oct 2024 19:34:24 +0200 Subject: [PATCH] Propagate error traces properly, using the `error_trace` `connect_args` ... option, by using `crate-1.0.0dev1` --- CHANGES.md | 4 +++- pyproject.toml | 2 +- tests/test_error_handling.py | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 tests/test_error_handling.py diff --git a/CHANGES.md b/CHANGES.md index e7000f2..3512b26 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,9 +1,11 @@ # Changelog ## Unreleased +- Propagate error traces properly, using the `error_trace` `connect_args` option, + by using `crate-1.0.0dev1` ## 2024/08/29 0.39.0 -Added `quote_relation_name` support utility function +- Added `quote_relation_name` support utility function ## 2024/06/25 0.38.0 - Added/reactivated documentation as `sqlalchemy-cratedb` diff --git a/pyproject.toml b/pyproject.toml index c01b676..fbe8430 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -81,7 +81,7 @@ dynamic = [ ] dependencies = [ "backports.zoneinfo<1; python_version<'3.9'", - "crate==1.0.0.dev0", + "crate==1.0.0.dev1", "geojson<4,>=2.5", "importlib-resources; python_version<'3.9'", "sqlalchemy<2.1,>=1", diff --git a/tests/test_error_handling.py b/tests/test_error_handling.py new file mode 100644 index 0000000..591da67 --- /dev/null +++ b/tests/test_error_handling.py @@ -0,0 +1,21 @@ +import re + +import pytest +import sqlalchemy as sa + + +def test_statement_with_error_trace(cratedb_service): + """ + Verify that the `error_trace` option works correctly. + """ + engine = sa.create_engine(cratedb_service.database.dburi, connect_args={"error_trace": True}) + with engine.connect() as connection: + with pytest.raises(sa.exc.ProgrammingError) as ex: + connection.execute(sa.text("CREATE TABLE foo AS SELECT 1 AS _foo")) + assert ex.match( + re.escape('InvalidColumnNameException["_foo" conflicts with system column pattern]') + ) + assert ex.match( + "io.crate.exceptions.InvalidColumnNameException: " + '"_foo" conflicts with system column pattern' + )