From ae15b9643094b2590337968f2b3d5865cd5da1d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=A4r?= Date: Wed, 4 Mar 2026 12:54:22 +0100 Subject: [PATCH 1/2] Prepare release 1.0.0 --- doc/changes/changelog.md | 2 ++ doc/changes/changes_1.0.0.md | 70 ++++++++++++++++++++++++++++++++++++ doc/changes/unreleased.md | 53 +-------------------------- exasol/tdbp/version.py | 4 +-- pyproject.toml | 2 +- 5 files changed, 76 insertions(+), 55 deletions(-) create mode 100644 doc/changes/changes_1.0.0.md diff --git a/doc/changes/changelog.md b/doc/changes/changelog.md index 0bbf867..7d9561a 100644 --- a/doc/changes/changelog.md +++ b/doc/changes/changelog.md @@ -1,10 +1,12 @@ # Changes * [unreleased](unreleased.md) +* [1.0.0](changes_1.0.0.md) ```{toctree} --- hidden: --- unreleased +changes_1.0.0 ``` \ No newline at end of file diff --git a/doc/changes/changes_1.0.0.md b/doc/changes/changes_1.0.0.md new file mode 100644 index 0000000..58a3da9 --- /dev/null +++ b/doc/changes/changes_1.0.0.md @@ -0,0 +1,70 @@ +# 1.0.0 - 2026-03-04 + +This is the initial release of the "Test Database Builder for Python (TDBP)" project. + +The release offers support for the Exasol dialect, meaning that you can use TDBP to generate test data for Exasol databases. + +Features: + +1. Create schemas and tables in Exasol databases +2. Insert data into tables +3. Fluent programming interface + +Here is a short example. First, create the pytest fixture that provides the Exasol connection and the ExasolObjectFactory. + +```python +@pytest.fixture(scope="module") +def connection(): + with connect() as connection: + yield connection + +@pytest.fixture +def factory(connection): + factory = ExasolObjectFactory(connection) + factory.purge_user_objects() # Clean slate for each test + return factory +``` + +With that done, the test preparation gets very compact. + +```python + def test_insert_customers(factory): + # Prepare the test database + schema = factory.create_schema("SALES") + table = schema.create_table("CUSTOMERS", + ID="DECIMAL(12,0)", NAME="VARCHAR(255)") + table.insert(1, "Alice").insert(2, "Bob") + + # Execute your test + # ... + + # Assert the results + # ... +``` + +## Refactoring + +* #1: Added MIT license and security policy +* #3: Transformed project to comply with the standard layout of Exasol's Python projects by adding the Exasol Python Toolbox +* #5: Removed the workaround to get the host fingerprint +* #12: Removed unused `Config` class from `noxconfig.py` + +## Features + +* #3: Basic support for Exasol + +## Dependency Updates + +### `main` + +* Added dependency `pyexasol:2.0.0` +* Added dependency `regex:2026.2.28` + +### `dev` + +* Added dependency `exasol-integration-test-docker-environment:5.0.0` +* Added dependency `exasol-toolbox:6.0.0` +* Added dependency `nox:2026.2.9` +* Added dependency `pytest:8.4.2` +* Added dependency `pytest-exasol-backend:1.3.0` +* Added dependency `types-regex:2026.2.28.20260301` diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index b87056d..fb47370 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -1,54 +1,3 @@ # Unreleased -This is the initial release of the "Test Database Builder for Python (TDBP)" project. - -The release offers support for the Exasol dialect, meaning that you can use TDBP to generate test data for Exasol databases. - -Features: - -1. Create schemas and tables in Exasol databases -2. Insert data into tables -3. Fluent programming interface - -Here is a short example. First, create the pytest fixture that provides the Exasol connection and the ExasolObjectFactory. - -```python -@pytest.fixture(scope="module") -def connection(): - with connect() as connection: - yield connection - -@pytest.fixture -def factory(connection): - factory = ExasolObjectFactory(connection) - factory.purge_user_objects() # Clean slate for each test - return factory -``` - -With that done, the test preparation gets very compact. - -```python - def test_insert_customers(factory): - # Prepare the test database - schema = factory.create_schema("SALES") - table = schema.create_table("CUSTOMERS", - ID="DECIMAL(12,0)", NAME="VARCHAR(255)") - table.insert(1, "Alice").insert(2, "Bob") - - # Execute your test - # ... - - # Assert the results - # ... -``` - -## Refactoring - -* #1: Added MIT license and security policy -* #3: Transformed project to comply with the standard layout of Exasol's Python projects by adding the Exasol Python Toolbox -* #5: Removed the workaround to get the host fingerprint -* #12: Removed unused `Config` class from `noxconfig.py` - -## Features - -* #3: Basic support for Exasol +## Summary diff --git a/exasol/tdbp/version.py b/exasol/tdbp/version.py index a07dff7..f257285 100644 --- a/exasol/tdbp/version.py +++ b/exasol/tdbp/version.py @@ -8,8 +8,8 @@ `poetry version X.Y.Z`. """ -MAJOR = 0 -MINOR = 1 +MAJOR = 1 +MINOR = 0 PATCH = 0 VERSION = f"{MAJOR}.{MINOR}.{PATCH}" __version__ = VERSION diff --git a/pyproject.toml b/pyproject.toml index 5776874..daf7dbe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "test-db-builder-python" -version = "0.1.0" +version = "1.0.0" description = "Write compact code to setup up database contents in integration tests" requires-python = ">=3.12,<3.14" authors = [ From 60da5125cd5e94ee9771f7da5de3e062f8ba72b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=A4r?= Date: Wed, 4 Mar 2026 13:15:03 +0100 Subject: [PATCH 2/2] Delete .idea directory Removed the .idea directory. --- .idea/test-db-builder-python.iml | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 .idea/test-db-builder-python.iml diff --git a/.idea/test-db-builder-python.iml b/.idea/test-db-builder-python.iml deleted file mode 100644 index 527c599..0000000 --- a/.idea/test-db-builder-python.iml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file