rabadon

overview / findings / a source module named tests.py sits inside the package

A source module named tests.py sits inside the package, so any tool that reads the word tests in a filename will treat the template language's own test functions as a test suite

what was wrong

found by widening rabadon's own discovery and watching it lock two jinja files that are not tests: src/jinja2/tests.py, which implements the is-defined family the template language exposes, and examples/basic/test.py, which is a demo script. not a defect in jinja; a naming collision that any locking tool has to survive, and the reason rabadon now requires a convention rather than a single filename.

fieldvalue
repositorypallets/jinja
filesrc/jinja2/tests.py
statusfound
found2026-08-02

the command that shows it

./native/rabadon-truth /path/to/jinja --json

A finding without a command that demonstrates it is an opinion, and site/build.py drops it. This one is also listed on the catches page.

Other findings in pallets/jinja: their page.