DiamondLightSource / DiamondLightSource/aioca

aioca does not work on MacOS with Python3.13

Open
#63 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
9
Forks
5
PR merge metrics
No merged PRs in 30d

Description

When running the tests on MacOS with Python3.13 the tests seem to hang, either during the cleanup of `tests/test_aioca.py::test_run_forever` or the initialization of `tests/test_aioca.py::test_import_in_a_different_thread`.

An example of the hang [can be seen here](https://github.com/DiamondLightSource/aioca/actions/runs/16565245987/job/46843686346?pr=59). The text output is copied below for reference.

MacOS on Python 3.13 has been removed from the test matrix, to allow releases on all other platforms.

## Acceptance Criteria
- MacOS + Python3.13 can be re-added to the test matrix

```
Run tox -e tests
tests create: /Users/runner/work/aioca/aioca/.tox/tests
tests installed: accessible-pygments==0.0.5,aioca @ file:///Users/runner/work/aioca/aioca,alabaster==1.0.0,anyio==4.9.0,babel==2.17.0,beautifulsoup4==4.13.4,black==25.1.0,certifi==2025.7.14,cfgv==3.4.0,charset-normalizer==3.4.2,click==8.2.1,colorama==0.4.6,coverage==7.10.1,distlib==0.4.0,docutils==0.21.2,epicscorelibs==7.0.7.99.1.2a3,filelock==3.18.0,h11==0.16.0,identify==2.6.12,idna==3.10,imagesize==1.4.1,iniconfig==2.1.0,Jinja2==3.1.6,markdown-it-py==3.0.0,MarkupSafe==3.0.2,mdit-py-plugins==0.4.2,mdurl==0.1.2,mypy==1.17.0,mypy_extensions==1.1.0,myst-parser==4.0.1,nodeenv==1.9.1,numpy==2.3.2,packaging==25.0,pathlib2==2.3.7.post1,pathspec==0.12.1,pipdeptree==2.28.0,platformdirs==4.3.8,pluggy==1.6.0,pre_commit==4.2.0,py==1.11.0,pydata-sphinx-theme==0.16.1,Pygments==2.19.2,pytest==7.4.4,pytest-asyncio==0.23.8,pytest-cov==6.2.1,PyYAML==6.0.2,requests==2.32.4,roman-numerals-py==3.1.0,ruff==0.12.5,setuptools==80.9.0,setuptools_dso==2.12.2,six==1.17.0,sniffio==1.3.1,snowballstemmer==3.0.1,soupsieve==2.7,Sphinx==8.2
tests run-test-pre: PYTHONHASHSEED='677899726'
tests run-test: commands[0] | pytest --cov=aioca --cov-report term --cov-report xml:cov.xml
============================= test session starts ==============================
platform darwin -- Python 3.13.5, pytest-7.4.4, pluggy-1.6.0 -- /Library/Frameworks/Python.framework/Versions/3.13/bin/python
cachedir: .tox/tests/.pytest_cache
rootdir: /Users/runner/work/aioca/aioca
configfile: pyproject.toml
testpaths: docs, src, tests
plugins: asyncio-0.23.8, anyio-4.9.0, cov-6.2.1
asyncio: mode=Mode.STRICT
collecting ... collected 32 items
tests/test_aioca.py::test_connect PASSED [ 3%]
tests/test_aioca.py::test_cainfo PASSED [ 6%]
tests/test_aioca.py::test_get_non_existent_pvs_no_throw PASSED [ 9%]
tests/test_aioca.py::test_get_two_pvs[pvs0] PASSED [ 12%]
tests/test_aioca.py::test_get_two_pvs[pvs1] PASSED [ 15%]
tests/test_aioca.py::test_get_pv_with_bad_egus PASSED [ 18%]
tests/test_aioca.py::test_get_waveform_pv PASSED [ 21%]
tests/test_aioca.py::test_caput PASSED [ 25%]
tests/test_aioca.py::test_caput_on_ro_pv_fails PASSED [ 28%]
tests/test_aioca.py::test_caput_two_pvs_same_value[pvs0] PASSED [ 31%]
tests/test_aioca.py::test_caput_two_pvs_same_value[pvs1] PASSED [ 34%]
tests/test_aioca.py::test_caput_two_pvs_different_value PASSED [ 37%]
tests/test_aioca.py::test_caget_non_existent PASSED [ 40%]
tests/test_aioca.py::test_caget_non_existent_and_good PASSED [ 43%]
tests/test_aioca.py::test_monitor PASSED [ 46%]
tests/test_aioca.py::test_monitor_with_failing_dbr PASSED [ 50%]
tests/test_aioca.py::test_monitor_two_pvs PASSED [ 53%]
tests/test_aioca.py::test_long_monitor_callback PASSED [ 56%]
tests/test_aioca.py::test_long_monitor_all_updates PASSED [ 59%]
tests/test_aioca.py::test_exception_raising_monitor_callback PASSED [ 62%]
tests/test_aioca.py::test_async_exception_raising_monitor_callback PASSED [ 65%]
tests/test_aioca.py::test_camonitor_non_existent PASSED [ 68%]
tests/test_aioca.py::test_camonitor_non_existent_async PASSED [ 71%]
tests/test_aioca.py::test_monitor_gc PASSED [ 75%]
tests/test_aioca.py::test_closing_event_loop PASSED [ 78%]
tests/test_aioca.py::test_value_event_raises PASSED [ 81%]
tests/test_aioca.py::test_ca_nothing_dunder_methods PASSED [ 84%]
tests/test_aioca.py::test_run_forever PASSED [ 87%]
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.