xml: don't lose the report when a measured file is outside the cwd - #89
Merged
jaltmayerpizzorno merged 1 commit intoAug 10, 2026
Merged
Conversation
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.
Fixes #87.
print_xml()makes each measured file relative withPath(...).relative_to(Path.cwd()), andrelative_toraisesValueErrorfor anything outside the cwd. It happens in theatexithandler — so the test run finishes, the coverage is collected, and then the entire report is lost.--sourcedoes not help: the constructor only keeps paths that exist at report time and silently drops the rest.SlipCover already answers this exact question in
PathSimplifier.simplify()(src/slipcover/slipcover.py), where the same call is guarded and degrades to the absolute path. This brings the XML reporter in line with it: onValueErrorthe absolute path is used, and thesourcesentry is recorded only when the file really does live under the cwd.Test
test_xml_file_outside_cwdmeasures a file outside the working directory and asserts that the XML parses, thatsourcesholds only the cwd, and that the class carries the absolute filename. It raisesValueErroronmain.AI-assisted (LLM used for drafting and for running the checks); the analysis and the runs are mine.