The GitHub Actions job "Release Auditing" on texera.git/main has succeeded.
Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).

Head commit for run:
ced34484ca8d90043fadf4780cd0d33ec8891b32 / Yicong Huang 
<[email protected]>
test(pyamber): add unit tests for replace_print and AtomicInteger (#4795)

### What changes were proposed in this PR?

Adds pytest coverage for two thin core utilities:

- `amber/src/main/python/core/util/console_message/replace_print.py` —
the `replace_print` context manager that intercepts `builtins.print` and
enqueues `ConsoleMessage` payloads on a buffer.
- `amber/src/main/python/core/util/thread/atomic.py` — the
`AtomicInteger` thread-safe counter.

### Any related issues, documentation, discussions?

Closes #4793.

Bug pinned in the spec with comment + xfail-strict for the intended
contract (filed separately as a Bug issue): `AtomicInteger.get_and_set`
deadlocks because it holds the non-reentrant lock while invoking the
`value` property, which tries to acquire the same lock again. The pinned
test surfaces the deadlock via a thread + timeout (so the suite does not
hang), and the xfail-strict companion asserts the intended `get_and_set`
contract — that test will flip to XPASS the moment the deadlock is fixed
and force the spec to be updated alongside.

### How was this PR tested?

```
cd amber/src/main/python
ruff check core/util/thread/test_atomic.py 
core/util/console_message/test_replace_print.py
ruff format --check core/util/thread/test_atomic.py 
core/util/console_message/test_replace_print.py
python -m pytest core/util/thread/test_atomic.py 
core/util/console_message/test_replace_print.py
```

### Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (claude-opus-4-7)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>

Report URL: https://github.com/apache/texera/actions/runs/25284330507

With regards,
GitHub Actions via GitBox

Reply via email to