Ensure parameterized tests don't produce overlapping snapshot files. #267
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.
The current escaping function replaces non-alphanumeric characters with the "_" character to ensure they are compatible with the filesystem's constraints. However, this normalization can cause a problem when two separate parameterized tests point at the same snapshot file after this normalization step.
This change modifies the normalization function to replace these characters with either their Unicode name or hexidecimal escape code. The resulting filenames are a bit verbose, but this approach ensures that these snapshots are always creating unique files.
If you revert the normalization function change, you'll note that the "overlap]" and "overlap[" tests in
test_fmt.py
will refer to the same snapshot file and the tests will fail and/or be flaky.