pytest-dev / pytest-dev/pytest-django
4.8.0: pytest is failing
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 367
- PR merge metrics
- No merged PRs in 30d
Description
I'm trying to package your module as an rpm package. So I'm using the typical build, install and test cycle used on building packages from non-root account.
- "setup.py build"
- "setup.py install --root </install/prefix>"
- "pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
pytest is failing because it cannot find pytest_django_test which is in project root directory. Is it any special methdod to preload that modules during the test suite execution?
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-pytest-django-4.5.1-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-pytest-django-4.5.1-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra tests
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 703, in import_plugin
__import__(importspec)
ModuleNotFoundError: No module named 'pytest_django_test'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/bin/pytest", line 33, in <module>
sys.exit(load_entry_point('pytest==6.2.5', 'console_scripts', 'pytest')())
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 185, in console_main
code = main()
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 143, in main
config = _prepareconfig(args, plugins)
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 318, in _prepareconfig
config = pluginmanager.hook.pytest_cmdline_parse(
File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
gen.send(outcome)
File "/usr/lib/python3.8/site-packages/_pytest/helpconfig.py", line 100, in pytest_cmdline_parse
config: Config = outcome.get_result()
File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
raise ex[1].with_traceback(ex[2])
File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1003, in pytest_cmdline_parse
self.parse(args)
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1283, in parse
self._preparse(args, addopts=addopts)
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1168, in _preparse
self.pluginmanager.consider_preparse(args, exclude_only=False)
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 635, in consider_preparse
self.consider_pluginarg(parg)
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 660, in consider_pluginarg
self.import_plugin(arg, consider_entry_points=True)
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 705, in import_plugin
raise ImportError(
File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 703, in import_plugin
__import__(importspec)
ImportError: Error importing plugin "pytest_django_test": No module named 'pytest_django_test'
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with setup.py, the project-root pytest_django_test module, and the tests directory, then reproduce the documented build, install, and pytest commands with PYTHONPATH pointed at the installation prefix. Done means pytest can discover pytest_django_test and run the tests successfully in this non-root installed-package workflow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- django, python
- Domain
- build-system, testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100