Disable assertion rewriting external modules
Need to squash commits - OK to close, I'll reopen a new one with one commit
I skimmed through the issue (I'm short on time so I cannot do a more through research), but looking at the code is not immediately clear to me so thought I would ask:
Note that we want to rewrite asserts for files belonging to a pytest plugin, even if they are not test_*.py files. How does this patch relate to that? This is an important behavior that should be kept.
I skimmed through the issue (I'm short on time so I cannot do a more through research), but looking at the code is not immediately clear to me so thought I would ask:
Note that we want to rewrite asserts for files belonging to a pytest plugin, even if they are not
test_*.pyfiles. How does this patch relate to that? This is an important behavior that should be kept.
At present time the fix is applied only for path which applies test_*py. The plugins are processed separately. I'll add some tests against that important part.
I skimmed through the issue (I'm short on time so I cannot do a more through research), but looking at the code is not immediately clear to me so thought I would ask: Note that we want to rewrite asserts for files belonging to a pytest plugin, even if they are not
test_*.pyfiles. How does this patch relate to that? This is an important behavior that should be kept.At present time the fix is applied only for path which applies
test_*py. The plugins are processed separately. I'll add some tests against that important part.
Added some tests for plugin rewriting, it works now
Do we need to rewrite contest plugins? It's the not original behavior
Conftest files that are part of the collection should rewrite as far as I remember
my understanding is that rewrite of conftest plugins was always happening as part of the original assertion hooking
But it still doen't see conftest plugins
Result of provided plugins:
['pytest', 'zope.interface', 'idna', 'anyio', 'sniffio', 'filelock', 'cachetools', 'incremental', 'greenlet', 'pluggy', 'hypothesis', 'Automat', 'wheel', 'virtualenv', 'coverage', 'pip', 'distlib', 'mock', 'pre_commit', 'typing_extensions', 'elementpath', 'pytest-twisted', 'PyYAML', 'pyproject-api', 'identify', 'colorama', 'urllib3', 'hyperlink', 'Pygments', 'sortedcontainers', 'constantly', 'nodeenv', 'xmlschema', 'setuptools', 'attrs', 'requests', 'pytest', 'exceptiongroup', 'decorator', 'platformdirs', 'packaging', 'charset-normalizer', 'cfgv', 'Twisted', 'certifi', 'chardet', 'tox', 'argcomplete', 'iniconfig', 'jaraco.collections', 'zipp', 'typeguard', 'wheel', 'importlib_metadata', 'jaraco.text', 'jaraco.context', 'autocommand', 'tomli', 'typing_extensions', 'more-itertools', 'jaraco.functools', 'packaging', 'platformdirs', 'inflect', 'backports.tarfile']
The conftest plugins are loaded after the PEP302/PEP451 import hook considers files to rewrite. I propose a separate ticket for conftest plugins rewritng. I'll try to "play" with this.
I see code coverage is less than 100%(96%), maybe add some unit tests? Also mypy doesn't like the packeage name, created a question on stackoverflow nicoddemus[RonnyPfannschmidt], what do you think?
@Tusenka
testing/example_scripts/rewrite/src/main.py: error: Source file found twice under different module names: "example_scripts.rewrite.src.main" and "testing.example_scripts.rewrite.src.main"
testing/example_scripts/rewrite/src/main.py: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#mapping-file-paths-to-modules for more info
testing/example_scripts/rewrite/src/main.py: note: Common resolutions include: a) adding `__init__.py` somewhere, b) using `--explicit-package-bases` or adjusting MYPYPATH
Found 1 error in 1 file (errors prevented further checking)
I would scratch the explicit files in testing/example_scripts and create the scripts inside the tests that use them, with pytester. This side steps the issue entirely.
@Tusenka
testing/example_scripts/rewrite/src/main.py: error: Source file found twice under different module names: "example_scripts.rewrite.src.main" and "testing.example_scripts.rewrite.src.main" testing/example_scripts/rewrite/src/main.py: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#mapping-file-paths-to-modules for more info testing/example_scripts/rewrite/src/main.py: note: Common resolutions include: a) adding `__init__.py` somewhere, b) using `--explicit-package-bases` or adjusting MYPYPATH Found 1 error in 1 file (errors prevented further checking)I would scratch the explicit files in
testing/example_scriptsand create the scripts inside the tests that use them, withpytester. This side steps the issue entirely.
Thank you a lot. I would try to invoke the script in the acceptance tests.
Stuck on relative import - digging in