test: consolidate live MCP E2E suites - #6786
Conversation
|
1. Aliases now run the same suite twice. ~60 refs across 15 files still pair 2. 3. Playwright installs on every run. The 24 protocol tests never needed a browser, and |
3aaa8b2 to
37ce992
Compare
|
Addressed after rebasing onto origin/main in 37ce992.
Validated with make -n test-mcp-protocol-e2e test-mcp-rbac (one pytest invocation), make test-e2e (64 tests self-skip cleanly without a gateway), make pre-commit, and make detect-secrets-scan. |
gandhipratik203
left a comment
There was a problem hiding this comment.
All three points are addressed and verified: single pytest invocation across both aliases, setup guidance restored, and the browser install correctly dropped. Worth one make test-e2e against a live stack before merge to close acceptance criterion 2.
|
Local validation completed against the three-replica Docker testing stack.
No test-source changes were required. |
🚨 Blocking Issues
|
|
Thanks for the detailed pass — went through all four categories against the current tree. Blocking — fixed in b22666541 (rebase this in before merge):
Warnings — already resolved, no action taken:
Missing Coverage / Synthetic Tests — valid, but out of scope for this PR: |
Validated PR #6786 against the local three-replica Docker testing stack. make test-e2e exited successfully after exporting the stack JWT_SECRET_KEY to the local test process. The suite collected 64 tests. Signed-off-by: Suresh Kumar Moharajan <suresh.kumar.m@ibm.com>
37ce992 to
275e509
Compare
Signed-off-by: Suresh Kumar Moharajan <suresh.kumar.m@ibm.com>
Signed-off-by: Suresh Kumar Moharajan <suresh.kumar.m@ibm.com>
Signed-off-by: Suresh Kumar Moharajan <suresh.kumar.m@ibm.com>
Validated PR #6786 against the local three-replica Docker testing stack. make test-e2e exited successfully after exporting the stack JWT_SECRET_KEY to the local test process. The suite collected 64 tests. Signed-off-by: Suresh Kumar Moharajan <suresh.kumar.m@ibm.com>
tests/e2e/README.md "What's Tested" only covered the 6 async-protocol classes, omitting the 9 Playwright-based RBAC classes; the architecture diagram showed only the async path. release-management.md §5.4 still listed test-mcp-rbac/test-mcp-protocol-e2e as independent suites even though they're now deprecated aliases for test-e2e. Signed-off-by: Suresh Kumar Moharajan <suresh.kumar.m@ibm.com>
Line numbers shifted from the rebase onto main; no new or live secrets. Signed-off-by: Suresh Kumar Moharajan <suresh.kumar.m@ibm.com>
275e509 to
cfc0421
Compare
|
Running the suite twice against the same stack, the second run fails 6
Leave a pre-existing registration alone, or restore it at teardown? |
streamable_http_gateway deleted any gateway matching the fast_time_server URL during setup but only removed its own registration at teardown, permanently dropping the compose-seeded fast_time gateway. TestToolCalls depends on that gateway for its fast-time-* tools and fails on any subsequent run against the same stack. Capture displaced gateways and re-register them at teardown. Signed-off-by: Suresh Kumar Moharajan <suresh.kumar.m@ibm.com>
|
Confirmed — |
gandhipratik203
left a comment
There was a problem hiding this comment.
Verified on a live stack — 3 consecutive full runs on f36b2a43b, all clean (run 2 previously failed 6 TestToolCalls tests). Thanks for the quick fix.
Closes #6517
Summary
Consolidates the live MCP protocol and RBAC transport E2E suites into one authoritative module: tests/live_gateway/e2e/test_e2e.py.
Implementation details
Validation results
Environment notes
A live Docker gateway stack was not available, so the consolidated suite was not executed against running replicas. Repository-wide Bandit reports pre-existing findings in unchanged production files, and Pylint could not install the existing pylint-pydantic wheel because its metadata is invalid.