From 707b9cadf7fca845730c063cd6e6b70eb0f95ced Mon Sep 17 00:00:00 2001 From: John Kennedy Date: Thu, 1 Oct 2026 16:22:09 +0000 Subject: [PATCH] fix: synchronize test environment before server startup Co-authored-by: open-swe[bot] --- libs/langgraph/Makefile | 47 +++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/libs/langgraph/Makefile b/libs/langgraph/Makefile index bfad74585..c5ce24a43 100644 --- a/libs/langgraph/Makefile +++ b/libs/langgraph/Makefile @@ -44,13 +44,26 @@ stop-services: docker compose -f tests/compose-postgres.yml -f tests/compose-redis.yml down -v start-dev-server: - LOG_LEVEL=warning uv run langgraph dev --config tests/example_app/langgraph.json --no-browser & echo "$$!" > .devserver.pid - @echo "Dev server started." + uv sync --frozen --group test --no-dev + @LOG_LEVEL=warning uv run --no-sync langgraph dev --config tests/example_app/langgraph.json --no-browser --no-reload & \ + PID=$$!; echo "$$PID" > .devserver.pid; \ + for ATTEMPT in $$(seq 1 60); do \ + if ! kill -0 $$PID 2>/dev/null; then break; fi; \ + if curl --fail --silent --max-time 1 http://localhost:2024/ok >/dev/null; then \ + echo "Dev server ready."; exit 0; \ + fi; \ + sleep 1; \ + done; \ + echo "Dev server failed to become ready." >&2; \ + kill $$PID 2>/dev/null || true; \ + wait $$PID 2>/dev/null || true; \ + rm -f .devserver.pid; exit 1 stop-dev-server: @if [ -f .devserver.pid ]; then \ - kill `cat .devserver.pid` && rm .devserver.pid; \ - echo "Dev server stopped."; \ + kill $$(cat .devserver.pid) 2>/dev/null || true; \ + rm -f .devserver.pid; \ + echo "Dev server stopped."; \ else \ echo "No dev server PID file found."; \ fi @@ -60,13 +73,12 @@ NO_DOCKER ?= $(sh command -v docker >/dev/null 2>&1 && echo "false" || echo "tru test: if [ "$(NO_DOCKER)" = "false" ]; then \ - make start-services &&\ - make start-dev-server &&\ - uv run pytest $(TEST); \ - EXIT_CODE=$$?; \ - make stop-services; \ - make stop-dev-server; \ - exit $$EXIT_CODE; \ + trap '$(MAKE) stop-dev-server; $(MAKE) stop-services' EXIT; \ + trap 'exit 130' INT; trap 'exit 143' TERM; \ + $(MAKE) start-services &&\ + $(MAKE) start-dev-server &&\ + uv run --no-sync pytest $(TEST); \ + exit $$?; \ else \ NO_DOCKER=true uv run pytest $(TEST) ; \ EXIT_CODE=$$?; \ @@ -74,13 +86,12 @@ test: fi test_parallel: - make start-services &&\ - make start-dev-server &&\ - uv run pytest -n auto --dist worksteal $(TEST) -vv --lf; \ - EXIT_CODE=$$?; \ - make stop-services; \ - make stop-dev-server; \ - exit $$EXIT_CODE + trap '$(MAKE) stop-dev-server; $(MAKE) stop-services' EXIT; \ + trap 'exit 130' INT; trap 'exit 143' TERM; \ + $(MAKE) start-services &&\ + $(MAKE) start-dev-server &&\ + uv run --no-sync pytest -n auto --dist worksteal $(TEST) -vv --lf; \ + exit $$? integration_tests: uv run pytest integration_tests