paultmathew opened a new pull request, #3334:
URL: https://github.com/apache/iceberg-python/pull/3334

   # Rationale for this change
   
   `test_write_optional_list` uses `create_table_if_not_exists` and then 
asserts exact row counts (2 after the first append, 4 after the second). The 
table is reused across runs, so a second invocation against the same 
docker-compose stack accumulates rows — counts become 6, 10, 14, … and the 
asserts fail.
   
   CI hides this because it spins up a fresh `docker-compose-integration` stack 
for every job. Locally it bites anyone who runs `make test-integration-exec` 
twice without `make test-integration-cleanup` in between.
   
   Fix: drop the table at the start so the test always starts from a clean 
slate, matching the `drop-then-create` pattern used by `_create_table()` for 
every other write test in this module.
   
   # Are these changes tested?
   
   Yes — verified locally that the test now passes when run twice back-to-back 
without resetting the docker stack:
   
   ```bash
   docker compose -f dev/docker-compose-integration.yml up -d --wait
   uv run python dev/provision.py
   uv run python -m pytest 
tests/integration/test_writes/test_writes.py::test_write_optional_list -m 
integration  # PASS
   uv run python -m pytest 
tests/integration/test_writes/test_writes.py::test_write_optional_list -m 
integration  # PASS (was previously: 8 == 2)
   ```
   
   Full `tests/integration/test_writes/test_writes.py` suite: 122 passed, 1 
skipped.
   
   # Are there any user-facing changes?
   
   No.
   
   ---
   
   Noticed while preparing the PR for #2152 (`RecordBatchReader` streaming 
append).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to