36 Commits

Author SHA1 Message Date
Itai Bohadana d7802d89d6 fix(params_getter): try to bind even if socket exists 2025-10-06 11:47:36 +03:00
Itai Bohadana 325afe0335 fix(params_getter): try to bind even if socket exists 2025-10-06 11:47:36 +03:00
Itai Bohadana f3ebd18def feat(pytest): use socket instead of a shitton of processes 2025-10-06 11:47:34 +03:00
Daniel Ebrahimian 7cab6e2ecc feat: improve Django unit test execution pathing (#103) 2025-09-27 11:36:59 +01:00
Rónán Carrigan 1b1b1abf92 feat(pytest): strip ansi codes from errors 2025-09-19 12:16:58 +01:00
nicos68 ed9b4d794b feat(pytest): use python_functions config option (#100) 2025-06-23 22:28:18 +01:00
Maksym Bieńkowski 61e878f4b3 fix(django): make the test runner non-interactive by default (#95) 2025-05-28 16:17:40 +01:00
Neal Joslin a2861ab3c9 fix(django): duplicate --failfast check (#84) 2024-10-02 20:26:48 +01:00
Rónán Carrigan e5bff6dcf3 fix(pytest): handle failed setup
Previously we would only handle skipped setups, we need to handle failed
setups in cases of fixture lookup errors.

See #37
2024-08-14 16:21:33 +01:00
johnybx 2e83d2bc00 fix: - use --verbosity=0 when collecting pytest parametrized tests (#60) 2024-01-15 08:03:46 +00:00
Rónán Carrigan 27a2676aa0 fix(pytest): handle parameterized tests without pytest discovery
Only emits position IDs with parameters when pytest discovery is enabled

See #36 and #59
2023-12-20 18:51:58 +00:00
Adrian Frischkorn 48bf141103 feat: django support. (#54) 2023-12-10 19:15:08 +00:00
Daniel Watkins ff20740633 feat(pytest): populate parameterized test instances (#36)
Co-authored-by: Rónán Carrigan <rcarriga@tcd.ie>
2023-11-12 11:01:00 +00:00
Willem-J-an 81d2265efa fix(unittest): parse failing subtests (#53)
Co-authored-by: Willem Jan Noort <noortw01@heiway.net>
2023-08-25 11:17:04 +01:00
Rónán Carrigan 6c06041cfb fix(unittest): correct arg order for test vs suite
See #45
2023-02-18 09:34:37 +00:00
Rónán Carrigan 75fdeb460d fix(unittest): correctly order arguments
See #45
2023-02-17 08:10:16 +00:00
Rónán Carrigan dc36e8a857 fix(unittest): prepend executable name in args 2023-02-16 09:39:19 +00:00
Rónán Carrigan 4398ba1063 fix(unittest): handle error outside of file
If an error occurs outside of the test file, there is no frame to match
an error to. This can happen for example when required arguments are not
passed to the test.
2023-02-16 09:19:15 +00:00
Rónán Carrigan 1c06dfac57 fix(unittest): use parsed args
sys.argv should not have been used, switched to passed arguments

See #45
2023-02-16 09:18:13 +00:00
Rónán Carrigan 438744e274 fix(pytest): wrap pytest types 2022-11-10 14:57:14 +00:00
Daniel Watkins 52624d1306 refactor(pytest): move remaining imports to module-level (#32)
We introduced a module-level import dependency on pytest in #29: this
makes our importing consistent.
2022-11-10 08:23:16 +00:00
Daniel Watkins 458f35723f feat(pytest): prefix diagnostic messages with parameterized test ID (#33)
Given a test like:

```py
@pytest.mark.parametrize("a,b", [("b", "c"), ("c", "d")])
def test_a(a, b):
    assert False
```

This modifies the diagnostic message from:

```
neotest: assert False
neotest: assert False
```

to:

```

neotest: [b-c] assert False
neotest: [c-d] assert False
```

This is the same internal value which `pytest` uses for parametrized
instances in its output, so it should be fully consistent.

Without this, the diagnostic messages aren't very useful for
parametrized tests: you can't identify _which_ of the multiple test
which execute the given line are failing.

Fixes: #30
2022-11-10 08:22:04 +00:00
Daniel Watkins c85a02089d feat(pytest): use pytest_runtest_makereport for consistent exception handling (#29)
* 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
2022-11-08 09:23:58 +00:00
Jongwook Choi 276881193d feat(pytest): exception breakpoints when running with dap strategy (#25)
When running neotest with the DAP strategy (nvim-dap), e.g.

    require("neotest").run.run({ strategy = "dap" })

we make the pydebug debugger stop at "exception breakpoints"
where the exception is thrown out of a pytest method.

This will be very helpful for users to debug failing unit tests.
2022-11-02 09:36:05 +00:00
Rónán Carrigan ba7069a030 fix(pytest): don't reverse namespaces
See #26
2022-10-31 14:14:52 +00:00
Jongwook Choi 2dc9c95fe9 refactor(pytest): PytestNeotestAdapter (#24)
Having `NeotestResultCollector` (a pytest plugin) as a inner local
class would make the code a bit difficult to read due to quite much
indentation. This commit does refactoring on NeotestResultCollector
to make it a module-level class with a reference to NeotestAdapter.

This refactoring would make easier adding more pytest plugins
(e.g., debugger integration) in the future.

There should be no changes in behaviors.
2022-10-29 13:23:40 +01:00
Rónán Carrigan 8aca335334 fix(pytest): use rootdir instead of rootpath
See #21
2022-10-20 08:03:18 +01:00
Rónán Carrigan 20df51e06f feat: mark deselected tests as skipped
See #13
2022-08-03 22:29:45 +01:00
Rónán Carrigan aaf83100b6 feat: streamed results 2022-07-23 15:02:35 +01:00
Rónán Carrigan 4d915fbefd fix(unittest): handle extra args 2022-07-02 09:58:14 +01:00
Rónán Carrigan 16ed9f6079 fix(pytest): handle xfail exc repr
See #5
2022-06-09 21:15:17 +01:00
Steven Arcangeli c09c4136bb fix(unittest): correct args for tests/classes/files (#2)
* fix: unittest adapter can run specific tests/groups/files

* fix: running tests at the directory level

* refactor: tidy id_to_unittest_args and remove print
2022-06-08 20:58:05 +01:00
Steven Arcangeli fd75c18c14 fix: record skipped and error test results (#1) 2022-06-08 08:00:53 +01:00
Rónán Carrigan 42d6488760 feat: cyan colour for skipped tests 2022-02-28 09:06:55 +00:00
Rónán Carrigan a02e6d5acb feat: async build_spec 2022-02-06 21:18:33 +00:00
Rónán Carrigan b162ba1b42 feat: init commit 2022-01-02 23:15:23 +00:00