Repository navigation
test: add end-to-end integration suite, guards, and manual test script (ENG-384) - #7
Merged
folathecoder merged 1 commit intoOct 18, 2026
Conversation
…t (ENG-384) Make aldwin_home and no_network autouse fixtures in tests/conftest.py, add shared host_client, agent_session, fake_host, collect, and auto_approve helpers, and expand FakeModel with top-level turn builders. Add the full integration suite (tests/integration/test_full_turns.py), CLI rendering suite (tests/cli/test_render_suite.py), AST import guards, live Tavily check, CI coverage upload, and docs/manual-test.md.
folathecoder
deleted the
folathecoder/eng-384-8-testing-automated-and-manual
branch
October 18, 2026 15:40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes the automated and manual testing infrastructure for Aldwin 0.0.1. Every test now runs inside an
autousetemporaryALDWIN_HOMEandHOMEwith outboundAF_INET/AF_INET6sockets blocked by default, backed by sharedFakeModel,FakeHost,agent_session, andhost_clientfixtures, a full integration suite, a dedicated CLI rendering suite, AST architecture guards, CI coverage artifact upload, and the clean-machine manual test script indocs/manual-test.md.Ticket
Closes ENG-384
Changes
tests/conftest.py,tests/fakes/model.py,tests/fakes/host.py,tests/test_conftest_guards.py):aldwin_homeautouse=True(redirectsALDWIN_HOMEandHOMEintotmp_path, clearsOPENAI_API_KEYandTAVILY_API_KEYin non-liveruns, and initializesensure_home()unless marked@pytest.mark.uninitialized_home).no_network(autouse=True) blocking outboundAF_INETandAF_INET6sockets while permittingAF_UNIXsocket.socketpair()forasyncioandprompt_toolkit.agent_session,host_client,fake_host,collect, andauto_approvefixtures/helpers, plus top-levelFakeModelturn builders (text(..., deltas=N),tool_call,final,raise_,hang) andFakeHost.requeststracking.tests/integration/test_full_turns.py):AldwinClient->AldwinHost->aldwin.corecovering 5-delta streaming,run_commandapproval (yesandno),Escstop during stream and during approval (< 1 s), model error handling,max_steps=15, crash after step 2 followed by reload and"continue",/new, and a 50-turn conversation verifying<= 20user turns per model call and 1 terminal event per turn.tests/cli/test_render_suite.py,tests/test_architecture.py):tests/cli/test_render_suite.pycovering welcome/header, dimmed history and divider, streamed markdown with code fences, exact tool cards (✓and✗), approval panel, end and stopped lines, all 6ErrorCodemessages, plain mode (\x1b[and\aabsent), and unknown slash command handling.tests/test_architecture.pywith AST + text import verification (check_forbidden_imports),builtin_tools()6-name verification, deliberate bad-import detection, CI matrix/artifact assertions, anddocs/manual-test.mdcompleteness checks.tests/live/test_openai_live.py,.github/workflows/ci.yml,docs/manual-test.md):@pytest.mark.livetest_tavily_live_search..github/workflows/ci.ymlto generate and uploadcoverage.xmlviaactions/upload-artifact@v4.docs/manual-test.mdwith clean-machine setup instructions for macOS and Linux, the 13-step verification script, and the platform test log template.How it was tested
uv run ruff check src tests(passed)uv run ruff format --check src tests(69 files formatted)uv run mypy src tests(passed, 65 source files)uv run pytest --cov=aldwin --cov-report=term-missing --cov-fail-under=90(233 passed, 2 deselected in 3.71s,92.43%total coverage;protocol/100%,host/95-96%,core/tools/92-100%,core/memory.py95%)OPENAI_API_KEY="" TAVILY_API_KEY="" uv run pytest -m live -v(2 skipped)Notes for reviewers
docs/manual-test.mdsection 3) will be executed and logged onENG-384as part of pre-release verification (ENG-385).