From 5c2713a69a8a3864e882e407e0f36f2af07824ee Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Fri, 6 Mar 2026 13:26:10 +0100 Subject: [PATCH 1/3] CI: Run integration tests against Kinesis with Python 3.10 - 3.14 This is to investigate a problem observed recently. kinesis.exceptions.StreamDoesNotExist: Stream 'testdrive' does not exist --- .github/workflows/kinesis.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/kinesis.yml b/.github/workflows/kinesis.yml index b8d40fed..7e52fa57 100644 --- a/.github/workflows/kinesis.yml +++ b/.github/workflows/kinesis.yml @@ -41,14 +41,12 @@ jobs: fail-fast: false matrix: os: ["ubuntu-latest"] - python-version: [ - # TODO: Activate test cases again. Currently fails with: - # test_kinesis_latest_dynamodb_cdc_insert_update - assert 0 == 1 - # "3.10", - # TODO: Integration tests became flaky again. Let's investigate later. - # kinesis.exceptions.StreamDoesNotExist: Stream 'testdrive' does not exist - # "3.13", - ] + python-version: + - "3.10" + - "3.11" + - "3.12" + - "3.13" + - "3.14" env: OS: ${{ matrix.os }} From 91d56430ec2dd0dde411f297af7f98f48a693c03 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Sat, 7 Mar 2026 16:51:17 +0100 Subject: [PATCH 2/3] Dependencies: Limit installation to testcontainers 4.14 max. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 63ef2a8e..c9d8c6f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -256,7 +256,7 @@ optional-dependencies.test = [ "pueblo[dataframe,notebook,testing]>=0.0.11", "pydantic-core<3", "responses<0.27", - "testcontainers[azurite,localstack,minio,postgres]", + "testcontainers[azurite,localstack,minio,postgres]<4.15", "types-docutils<0.21", ] optional-dependencies.test-mongodb = [ From 83bc10493cc711796d567897252e17682d889e3d Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Mon, 9 Mar 2026 13:12:06 +0100 Subject: [PATCH 3/3] CI: Increase post-delete settling time in `reset_streams()` for Kinesis > The 0.25s after the waiter is tight for CI. > Even bumping to 1-2s might be enough. --- tests/io/kinesis/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/io/kinesis/conftest.py b/tests/io/kinesis/conftest.py index e6bfaed9..d9a9114d 100644 --- a/tests/io/kinesis/conftest.py +++ b/tests/io/kinesis/conftest.py @@ -68,7 +68,7 @@ def reset_streams(self): raise waiter = kinesis_client.get_waiter("stream_not_exists") waiter.wait(StreamName=stream_name, WaiterConfig={"Delay": 0.3, "MaxAttempts": 15}) - time.sleep(0.25) + time.sleep(2) def get_connection_url_kinesis(self): url = URL(self.container.get_url())