Commit Graph

11 Commits

Author SHA1 Message Date
0dd5d35311 Fix CI tests and speed up integration tests
All checks were successful
CI / Lint (push) Successful in 4s
CI / Type Check (push) Successful in 18s
CI / Test (push) Successful in 1m58s
CI / Release (push) Has been skipped
- Speed up simulation 10x for integration tests (reduces test time from
  10+ minutes to ~2.5 minutes)
- Add small delays between TCP commands in tests for reliability
- Fix Gitea CI release job (use gitea.ref instead of github.ref)
- Revert write() error-check that was consuming query responses

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 21:49:12 +00:00
416969e899 Polish dashboard UX and update README
- Wrap simulation controls in form to prevent page reruns on change
- Fix TempCo test configs to use 2+ temperature points
- Add Installation, Quick Start, and usage examples to README

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 17:42:07 +00:00
cd9efdf71d Add end-to-end integration test 2025-12-03 16:21:10 +00:00
15f3baaafe Fix TempCo integration tests with thread-based async server
All checks were successful
CI / Lint (push) Successful in 3s
CI / Type Check (push) Successful in 17s
CI / Test (push) Successful in 3m20s
CI / Release (push) Has been skipped
Redesign integration test architecture to eliminate async/sync deadlock:
- Run SimulationServer in dedicated background thread with own event loop
- Rewrite TempCo tests as fully synchronous (no @pytest.mark.asyncio)
- Add ServerThread fixture in tests/integration/conftest.py
- Fix Unicode encoding errors (replace deg, mu, +/- with ASCII)
- Optimize temperature points for faster settling (23C, 25C, 27C)

All 3 TempCo integration tests now passing in ~5 minutes total.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 02:19:33 +00:00
3ea5f1ea32 WIP: Use thread pool executor for integration tests
Some checks failed
CI / Release (push) Has been skipped
CI / Lint (push) Successful in 4s
CI / Type Check (push) Successful in 18s
CI / Test (push) Failing after 10s
Move synchronous test execution to thread pool executor to avoid
blocking the async event loop. This prevents deadlocks when sync
client code tries to communicate with async server in same loop.

Note: Integration tests still experiencing timeouts - needs further
investigation. Unit tests and TCP server communication are working.
2025-12-03 01:12:05 +00:00
a412d04820 Add TempCo integration tests 2025-12-03 00:19:11 +00:00
e36349c853 Fix linting and type errors for CI
All checks were successful
CI / Lint (push) Successful in 4s
CI / Type Check (push) Successful in 16s
CI / Test (push) Successful in 9s
CI / Release (push) Has been skipped
- Use X | None syntax instead of Optional[X] (UP045)
- Sort imports in dashboard app (I001)
- Remove unnecessary UTF-8 encoding argument (UP012)
- Add 'from err' to exception re-raises (B904)
- Remove unused imports in integration tests (F401)
- Fix useless expression in test (B018)
- Cast **1.5 result to float in LDO model (mypy no-any-return)
- Use functools.partial instead of lambda in server (mypy misc)
2025-12-02 16:22:57 +00:00
ad8d61b649 Move InstrumentServer to instruments/transport
Some checks failed
CI / Lint (push) Failing after 11m12s
CI / Type Check (push) Failing after 2m10s
CI / Test (push) Successful in 9s
CI / Release (push) Has been skipped
InstrumentServer is a general-purpose SCPI-over-TCP server that can
host any device implementing the SCPIDevice protocol (process method).
Moving it from simulation/ to instruments/transport/ reflects this:
- simulation package now depends on instruments package
- InstrumentServer can host both virtual and real instrument adapters
- Added SCPIDevice Protocol for type-safe device registration
2025-12-02 16:09:32 +00:00
3bdd2e6c48 Release v0.1.0-alpha.3
Some checks failed
CI / Lint (push) Failing after 30s
CI / Type Check (push) Failing after 36s
CI / Test (push) Failing after 28s
CI / Release (push) Has been skipped
2025-12-02 15:05:06 +00:00
b554b0327d Add TCP server integration tests
Test connection handling, multiple clients, instrument access across
all three virtual instruments, physics engine integration, and error
handling. Update pytest-asyncio config for v1.x compatibility.
2025-12-02 15:02:03 +00:00
2ecbb976bf Add package directory structure 2025-12-01 23:50:57 +00:00