python-devtools
python-devtools copied to clipboard
`insert_assert`
we should move https://github.com/samuelcolvin/dirty-equals/pull/51 to this package.
Function should be debug.insert_assert, but we still need the library to become a pytest plugin so tests with insert_assert can fail.
Hey, I tried insert_assert and loved it! I would like and could implement a nice feature but would be interested whether you'd like to merge it:
Add a version (or a configuration) of insert_assert that captures values from locals(), compares their values to parts of the object to be asserted (i.e. if it's a dict, then we'll check the keys and values recursively), and inserts variable names instead of raw values. It is very useful when the value being checked is dynamic such as a date or a uuid.
Essentially using aliases in place of literals whenever possible.
I think this is often an anti pattern in testing as it can make the test less declarative, I'd rather avoid it.
If you want to implement it, happy to review a PR, but it should be behind a flag.
Is this issue still open as a reminder to add insert_assert to the documentation?
I guess so.
@zmievsa I'm hoping to add something like what you're describing to a similar library here: https://github.com/15r10nk/inline-snapshot/pull/53
It won't automatically generate code using variables, but if it sees variables or other expressions inside an existing snapshot, it'll try to preserve them.