c85a02089d04053a9e51fb7c93aff6b32eef6ec7
* include type of unhandled pytest exc_repr in error message This makes triage of such issues a little simpler. * pytest: expect the more general ExceptionRepr class This is the (abstract) supertype of the currently-used ExceptionChainRepr, and defines all of the attributes currently used by the code. (This changes results in sensible output for `ReprExceptionInfo` instances, which is what my pytest invocations were generating.) * pytest: use pytest_runtest_makereport for consistent exception handling The `report` passed to `pytest_runtest_logreport` has a different internal exception representation depending on the `--tb` option with which `pytest` is configured: some of these representations do not include the traceback frames to allow us to calculate line numbers. `pytest_runtest_makereport`, however, has access to the original `ExceptionInfo` object when an exception is raised: this commit switches to using a `pytest_runtest_makereport` hookwrapper, so we can access the pytest-generated report as before, but get exception handling independent of `--tb` setting. Fixes: #28
neotest-python
Neotest adapter for python. Supports Pytest and unittest test files.
Requires nvim-treesitter and the parser for python.
require("neotest").setup({
adapters = {
require("neotest-python")
}
})
You can optionally supply configuration settings:
require("neotest").setup({
adapters = {
require("neotest-python")({
-- Extra arguments for nvim-dap configuration
-- See https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for values
dap = { justMyCode = false },
-- Command line arguments for runner
-- Can also be a function to return dynamic values
args = {"--log-level", "DEBUG"},
-- Runner to use. Will use pytest if available by default.
-- Can be a function to return dynamic value.
runner = "pytest",
-- Custom python path for the runner.
-- Can be a string or a list of strings.
-- Can also be a function to return dynamic value.
-- If not provided, the path will be inferred by checking for
-- virtual envs in the local directory and for Pipenev/Poetry configs
python = ".venv/bin/python"
-- Returns if a given file path is a test file.
-- NB: This function is called a lot so don't perform any heavy tasks within it.
is_test_file = function(file_path)
...
end,
})
}
})
Description
Languages
Python
60.7%
Lua
37.7%
Shell
1.6%