From 6af5cef8a6e79ee56876fb68401aca420a583d79 Mon Sep 17 00:00:00 2001 From: redcatbear Date: Fri, 17 Jul 2026 09:30:14 +0200 Subject: [PATCH 1/7] Raise code coverage. --- .github/workflows/slow-checks.yml | 2 +- .../exasol/exasol_immediate_database_object_writer.py | 7 +------ exasol/tdbp/schema.py | 3 --- exasol/tdbp/table.py | 2 -- noxconfig.py | 2 +- pyproject.toml | 1 - .../dialects/exasol/test_exasol_object_factory.py | 6 ++---- 7 files changed, 5 insertions(+), 18 deletions(-) diff --git a/.github/workflows/slow-checks.yml b/.github/workflows/slow-checks.yml index 3525d7d..384e01b 100644 --- a/.github/workflows/slow-checks.yml +++ b/.github/workflows/slow-checks.yml @@ -39,7 +39,7 @@ jobs: - name: Run Integration Tests id: run-integration-tests - run: poetry run -- nox -s test:integration -- --coverage --db-version ${MATRIX_EXASOL_VERSIONS} + run: poetry run -- nox -s test:integration -- --coverage --db-version ${MATRIX_EXASOL_VERSIONS} --backend onprem env: MATRIX_EXASOL_VERSIONS: ${{ matrix.exasol_versions }} diff --git a/exasol/tdbp/dialects/exasol/exasol_immediate_database_object_writer.py b/exasol/tdbp/dialects/exasol/exasol_immediate_database_object_writer.py index afddd41..69d3c11 100644 --- a/exasol/tdbp/dialects/exasol/exasol_immediate_database_object_writer.py +++ b/exasol/tdbp/dialects/exasol/exasol_immediate_database_object_writer.py @@ -1,5 +1,3 @@ -from typing import override - from pyexasol import ExaConnection from exasol.tdbp.database_object import DatabaseObject @@ -20,7 +18,7 @@ def __init__(self, connection: ExaConnection): """ self.connection = connection - @override + def on_create(self, database_object: DatabaseObject) -> None: """A database object was created. @@ -39,7 +37,6 @@ def on_create(self, database_object: DatabaseObject) -> None: self.connection.execute(sql) self.connection.commit() - @override def on_insert(self, table: Table, values: list) -> None: """ A row was inserted into a table. @@ -50,7 +47,6 @@ def on_insert(self, table: Table, values: list) -> None: """ self.on_insert_all(table, [values]) - @override def on_insert_all(self, table: Table, values: list[list]) -> None: """ Rows were inserted into a table. @@ -64,7 +60,6 @@ def on_insert_all(self, table: Table, values: list[list]) -> None: ) self.connection.commit() - @override def purge_user_objects(self) -> None: """Removes all user objects from the database. diff --git a/exasol/tdbp/schema.py b/exasol/tdbp/schema.py index 76d6795..21213ce 100644 --- a/exasol/tdbp/schema.py +++ b/exasol/tdbp/schema.py @@ -1,5 +1,3 @@ -from typing import override - from exasol.tdbp.database_object import DatabaseObject from exasol.tdbp.database_object_listener import DatabaseObjectListener from exasol.tdbp.table import Table @@ -18,7 +16,6 @@ class Schema(DatabaseObject): def __init__(self, listener: DatabaseObjectListener, schema_name: str): super().__init__(listener, schema_name) - @override def fully_qualified_name(self) -> str: return f'"{self.identifier}"' diff --git a/exasol/tdbp/table.py b/exasol/tdbp/table.py index 159bd59..30dfc10 100644 --- a/exasol/tdbp/table.py +++ b/exasol/tdbp/table.py @@ -3,7 +3,6 @@ from typing import ( TYPE_CHECKING, Any, - override, ) from exasol.tdbp.database_object import DatabaseObject @@ -39,7 +38,6 @@ def __init__( self.schema = schema self.columns = columns - @override def fully_qualified_name(self) -> str: return f'"{self.schema.identifier}"."{self.identifier}"' diff --git a/noxconfig.py b/noxconfig.py index 2bef498..e41419d 100644 --- a/noxconfig.py +++ b/noxconfig.py @@ -8,5 +8,5 @@ project_name="tdbp", root_path=Path(__file__).parent, python_versions=("3.12", "3.13"), - exasol_versions=("2025.1.8",), + exasol_versions=("2026.0.1",), ) diff --git a/pyproject.toml b/pyproject.toml index 8577091..31cbf38 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,6 @@ dynamic = ["classifiers", "dependencies"] classifiers = [ "Development Status :: 5 - Production/Stable", - "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/test/integration/dialects/exasol/test_exasol_object_factory.py b/test/integration/dialects/exasol/test_exasol_object_factory.py index 0758862..815a3a0 100644 --- a/test/integration/dialects/exasol/test_exasol_object_factory.py +++ b/test/integration/dialects/exasol/test_exasol_object_factory.py @@ -26,10 +26,8 @@ def test_create_table(factory, db_assert): def test_fully_qualified_name(factory): schema = factory.create_schema("CREATE_QUALIFIED_NAME_TEST_SCHEMA") table = schema.create_table("CREATE_QUALIFIED_NAME_TEST_TABLE", ID="DECIMAL(12,0)") - assert ( - table.fully_qualified_name() - == '"CREATE_QUALIFIED_NAME_TEST_SCHEMA"."CREATE_QUALIFIED_NAME_TEST_TABLE"', - ) + assert table.fully_qualified_name() == '"CREATE_QUALIFIED_NAME_TEST_SCHEMA"."CREATE_QUALIFIED_NAME_TEST_TABLE"' + def test_single_row_insert(factory, db_assert): From 5c447eabdccee075ad01f0decc459159bfb762f6 Mon Sep 17 00:00:00 2001 From: redcatbear Date: Fri, 17 Jul 2026 09:36:50 +0200 Subject: [PATCH 2/7] Added missing overrides. --- .../exasol/exasol_immediate_database_object_writer.py | 7 ++++++- exasol/tdbp/schema.py | 3 +++ exasol/tdbp/table.py | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/exasol/tdbp/dialects/exasol/exasol_immediate_database_object_writer.py b/exasol/tdbp/dialects/exasol/exasol_immediate_database_object_writer.py index 69d3c11..afddd41 100644 --- a/exasol/tdbp/dialects/exasol/exasol_immediate_database_object_writer.py +++ b/exasol/tdbp/dialects/exasol/exasol_immediate_database_object_writer.py @@ -1,3 +1,5 @@ +from typing import override + from pyexasol import ExaConnection from exasol.tdbp.database_object import DatabaseObject @@ -18,7 +20,7 @@ def __init__(self, connection: ExaConnection): """ self.connection = connection - + @override def on_create(self, database_object: DatabaseObject) -> None: """A database object was created. @@ -37,6 +39,7 @@ def on_create(self, database_object: DatabaseObject) -> None: self.connection.execute(sql) self.connection.commit() + @override def on_insert(self, table: Table, values: list) -> None: """ A row was inserted into a table. @@ -47,6 +50,7 @@ def on_insert(self, table: Table, values: list) -> None: """ self.on_insert_all(table, [values]) + @override def on_insert_all(self, table: Table, values: list[list]) -> None: """ Rows were inserted into a table. @@ -60,6 +64,7 @@ def on_insert_all(self, table: Table, values: list[list]) -> None: ) self.connection.commit() + @override def purge_user_objects(self) -> None: """Removes all user objects from the database. diff --git a/exasol/tdbp/schema.py b/exasol/tdbp/schema.py index 21213ce..76d6795 100644 --- a/exasol/tdbp/schema.py +++ b/exasol/tdbp/schema.py @@ -1,3 +1,5 @@ +from typing import override + from exasol.tdbp.database_object import DatabaseObject from exasol.tdbp.database_object_listener import DatabaseObjectListener from exasol.tdbp.table import Table @@ -16,6 +18,7 @@ class Schema(DatabaseObject): def __init__(self, listener: DatabaseObjectListener, schema_name: str): super().__init__(listener, schema_name) + @override def fully_qualified_name(self) -> str: return f'"{self.identifier}"' diff --git a/exasol/tdbp/table.py b/exasol/tdbp/table.py index 30dfc10..159bd59 100644 --- a/exasol/tdbp/table.py +++ b/exasol/tdbp/table.py @@ -3,6 +3,7 @@ from typing import ( TYPE_CHECKING, Any, + override, ) from exasol.tdbp.database_object import DatabaseObject @@ -38,6 +39,7 @@ def __init__( self.schema = schema self.columns = columns + @override def fully_qualified_name(self) -> str: return f'"{self.schema.identifier}"."{self.identifier}"' From 8727599083b748aa5ecca2a7b8a1560343e975c8 Mon Sep 17 00:00:00 2001 From: redcatbear Date: Fri, 17 Jul 2026 09:38:32 +0200 Subject: [PATCH 3/7] Updated changelog entry. --- doc/changes/unreleased.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index 9ec3e26..a4fa387 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -2,6 +2,8 @@ ## Summary +In this release we fixed integration test and therefore code coverage reporting in CI. The switch `--backend onprem` was missing from slow tests, causing integration tests to be skipped. + ## Security Issues * #23: Fixed security issues by updating dependencies From 47e91f67330ede2c55d543f18ec914e68692d3c3 Mon Sep 17 00:00:00 2001 From: redcatbear Date: Fri, 17 Jul 2026 09:43:34 +0200 Subject: [PATCH 4/7] Reformatted file. --- .../dialects/exasol/test_exasol_object_factory.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/integration/dialects/exasol/test_exasol_object_factory.py b/test/integration/dialects/exasol/test_exasol_object_factory.py index 815a3a0..7b90caa 100644 --- a/test/integration/dialects/exasol/test_exasol_object_factory.py +++ b/test/integration/dialects/exasol/test_exasol_object_factory.py @@ -26,8 +26,10 @@ def test_create_table(factory, db_assert): def test_fully_qualified_name(factory): schema = factory.create_schema("CREATE_QUALIFIED_NAME_TEST_SCHEMA") table = schema.create_table("CREATE_QUALIFIED_NAME_TEST_TABLE", ID="DECIMAL(12,0)") - assert table.fully_qualified_name() == '"CREATE_QUALIFIED_NAME_TEST_SCHEMA"."CREATE_QUALIFIED_NAME_TEST_TABLE"' - + assert ( + table.fully_qualified_name() + == '"CREATE_QUALIFIED_NAME_TEST_SCHEMA"."CREATE_QUALIFIED_NAME_TEST_TABLE"' + ) def test_single_row_insert(factory, db_assert): From 3f298f95eb653530fd6f6ea6c80fa1d14894eb10 Mon Sep 17 00:00:00 2001 From: redcatbear Date: Fri, 17 Jul 2026 10:11:44 +0200 Subject: [PATCH 5/7] #32: Exchanged switch `--db-version` with `--itde-db-version` in slow CI test. --- .github/workflows/slow-checks.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/slow-checks.yml b/.github/workflows/slow-checks.yml index 384e01b..96a015c 100644 --- a/.github/workflows/slow-checks.yml +++ b/.github/workflows/slow-checks.yml @@ -39,7 +39,8 @@ jobs: - name: Run Integration Tests id: run-integration-tests - run: poetry run -- nox -s test:integration -- --coverage --db-version ${MATRIX_EXASOL_VERSIONS} --backend onprem + # We need to set the backend explicity. Otherwise, integration tests are skipped. + run: poetry run -- nox -s test:integration -- --coverage --backend onprem --itde-db-version ${MATRIX_EXASOL_VERSIONS} env: MATRIX_EXASOL_VERSIONS: ${{ matrix.exasol_versions }} From d1c35501c2c149f7ed4b7c2b6f7c9c6aa591d1a3 Mon Sep 17 00:00:00 2001 From: redcatbear Date: Fri, 17 Jul 2026 10:16:14 +0200 Subject: [PATCH 6/7] #32: Fixed Exasol version number (should be 2026.1.0). --- noxconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/noxconfig.py b/noxconfig.py index e41419d..92c4e74 100644 --- a/noxconfig.py +++ b/noxconfig.py @@ -8,5 +8,5 @@ project_name="tdbp", root_path=Path(__file__).parent, python_versions=("3.12", "3.13"), - exasol_versions=("2026.0.1",), + exasol_versions=("2026.1.0",), ) From 0a157aa9d698f9a50fd1c4f098cff3367a1df56c Mon Sep 17 00:00:00 2001 From: redcatbear Date: Fri, 17 Jul 2026 10:32:17 +0200 Subject: [PATCH 7/7] #32: Exasol 2026.1.0 not covered yet by the ITDE. Reverting to 2025.1.8). --- noxconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/noxconfig.py b/noxconfig.py index 92c4e74..2bef498 100644 --- a/noxconfig.py +++ b/noxconfig.py @@ -8,5 +8,5 @@ project_name="tdbp", root_path=Path(__file__).parent, python_versions=("3.12", "3.13"), - exasol_versions=("2026.1.0",), + exasol_versions=("2025.1.8",), )