Un-skip the framework integration tests, and fix the three that were stale - #28
Merged
Merged
Conversation
…stale Yesterday's suite went green with 28 tests skipped, and a skip is only honest if someone eventually checks what it was hiding. Installing every extra and running them turned up three failures, all the same shape as the tool_calls one fixed in the previous commit: assertions left behind by 9d45dd1, which replaced the synthetic performance_summary step list with real child spans. KeyError: 'performance_summary' crewai's test proved per-task timings come from the real event bus rather than an even split - genuinely worth keeping, and the timings are still there, now as one child span per task carrying its own latency. Both autogen tests were the same: the agent's turn, and a tool call, are child spans now. Each assertion is rewritten against what the tracer actually emits, observed rather than guessed, and each keeps the property its test was written for - crewai still fails if the even-split approximation comes back, and the autogen tool-call test now also pins the root's flat tool_calls mirror, which is what the engine's "Tool failure" check and the dashboard's Tool quality column read. All three had to move off test_integrations.py's make_tracer(), which mocks tracer._send and so bypasses the very _send/_dispatch/child_span chain that builds child spans. They mock the ingest-client boundary instead, the idiom test_span_tree.py already uses and documents. The autogen tests also import autogen_ext, a separate distribution that is not part of the "autogen" extra, without guarding it - so they raised ModuleNotFoundError instead of skipping, exactly like the google-adk tests in the previous commit. Guarded now. It stays out of setup.py: ReplayChatCompletionClient is a test double, so it is a CI dependency, not something users of the autogen extra should be made to install. CI grows an extras job that installs .[all] plus autogen-ext and runs the suite with every integration present, so these cannot rot again. It sits beside the base job rather than replacing it: the base install is what most contributors have and gives fast feedback on both Pythons, while extras is slower (chromadb, onnxruntime and friends) and runs on one. .[all] resolves cleanly - checked before relying on it. base install 73 passed, 28 skipped .[all] 84 passed, 17 skipped .[all] + autogen-ext 86 passed, 15 skipped No test was quieted to get there: every rewritten assertion was verified to fail against a tree where the behaviour it protects is broken - crewai regressed to the even split, the root tool_calls mirror removed, the child span renamed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WYi6akpDa8qfiojRed2cAE
michalakmarcinth
changed the base branch from
claude/eval-skill-check-dbe48l
to
main
August 24, 2026 19:20
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.
Follow-up to #27, retargeted to
mainnow that it has landed. (It editstests.yml, which only exists because #27 renameddocs.yml, so it was stacked on that branch until then.)Why
#27 went green with 28 tests skipped, and a skip is only honest if someone eventually checks what it was hiding. Installing every extra and actually running them turned up three failures — all the same shape as the
tool_callsone fixed in #27:9d45dd1replaced the syntheticperformance_summarystep list with real child spans. Three more tests were never updated, and nothing ran them:9d45dd1test_crewai_captures_real_per_task_timing_via_event_busperformance_summary["execution_steps"]test_autogen_agent_run_traces_text_replyperformance_summary["execution_steps"]test_autogen_agent_run_traces_tool_callperformance_summary["tool_calls"]The fixes keep what each test was for
crewai's test proved per-task timings come from the real event bus rather than an even split — genuinely worth keeping, and the timings are still there, now as one child span per task carrying its own latency. Each assertion is rewritten against what the tracer actually emits, observed with a probe rather than guessed.
The autogen tool-call test now also pins the root's flat
tool_callsmirror — the same deliberate dual-write #27 documents, and what the engine's "Tool failure" check and the dashboard's Tool quality column read.All three had to move off
test_integrations.py'smake_tracer(), which mockstracer._sendand so bypasses the very_send/_dispatch/child_spanchain that builds child spans. They mock the ingest-client boundary instead — the idiomtest_span_tree.pyalready uses and documents.A guard that would have hidden a real failure
Both autogen tests import
autogen_ext— a separate distribution, not part of theautogenextra — while guarding onlyautogen_agentchat, so they raisedModuleNotFoundErrorinstead of skipping.Guarding it was the obvious fix, but installing
autogen-extto check first showed both tests failing on the stale assertion above. The guard alone would have papered over that. It's why every guarded test here was run with its dependency present before the skip was trusted.autogen-extdeliberately stays out ofsetup.py:ReplayChatCompletionClientis a test double, so it's a CI dependency, not something users of theautogenextra should be made to install.CI
tests.ymlgrows anextrasjob installing.[all]plusautogen-ext, so these can't rot again. It sits beside the base job rather than replacing it: the base install is what most contributors have and gives fast feedback on both Pythons, whileextrasis slower (chromadb, onnxruntime come along) and runs on one..[all]was verified to resolve cleanly before relying on it..[langchain]).[all].[all]+autogen-extNo test was quieted to get there
Every rewritten assertion was verified to fail against a tree where the behaviour it protects is broken:
tool_callsmirror removed → failsTests and CI only; no library code changed.
🤖 Generated with Claude Code
https://claude.ai/code/session_01WYi6akpDa8qfiojRed2cAE