getappmap / getappmap/appmap-python
in-process invocation of a test runner fails with "Recording already in progress"
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 104
- Fork
- 17
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
If one of the supported test runners (e.g. pytest, unittest) is run in-process, the enabled recording methods for the process apply to the test runner.
For example, in this test, the sqlmesh plan subcommand uses a click.testing.CliRunner to run a unittest test, which fails:
tests/cli/test_cli.py::test_plan
----------------------------------------------------------------------
Test Failure Summary
======================================================================
Num Successful Tests: 0
Failure Test: sqlmesh_example.full_model test_example_full_model
======================================================================
E
======================================================================
ERROR: test_example_full_model (/private/var/folders/2g/xqtf8_tn5j1861bbkvvhtmmr0000gn/T/pytest-of-ajp/pytest-159/test_plan0/tests/test_full_model.yaml)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/ajp/src/applandinc/appmap-python/_appmap/wrapt/wrappers.py", line 744, in __call__
return self._self_wrapper(self.__wrapped__, self._self_instance,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajp/src/applandinc/appmap-python/_appmap/unittest.py", line 36, in callTestMethod
with _session.record(test_case.__class__, method_name, location=location) as metadata:
File "/Users/ajp/.asdf/installs/python/3.12.2/lib/python3.12/contextlib.py", line 137, in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
File "/Users/ajp/src/applandinc/appmap-python/_appmap/testing_framework.py", line 119, in record
with rec, environ.disabled("requests"):
File "/Users/ajp/src/applandinc/appmap-python/_appmap/recording.py", line 47, in __enter__
self.start()
File "/Users/ajp/src/applandinc/appmap-python/_appmap/recording.py", line 32, in start
r.start_recording()
File "/Users/ajp/src/applandinc/appmap-python/_appmap/recorder.py", line 108, in start_recording
cls.get_current()._start_recording() # pylint: disable=protected-access
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ajp/src/applandinc/appmap-python/_appmap/recorder.py", line 236, in _start_recording
super()._start_recording()
File "/Users/ajp/src/applandinc/appmap-python/_appmap/recorder.py", line 158, in _start_recording
raise RuntimeError("Recording already in progress")
RuntimeError: Recording already in progress
----------------------------------------------------------------------
Ran 1 test in 0.165s
FAILED (errors=1)
Error: Cannot generate plan due to failing test(s). Fix test(s) and run again
FAILED
============================================================================================ FAILURES ============================================================================================
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il fallimento di tests/cli/test_cli.py::test_plan, quindi segui il flusso di registrazione annidato attraverso _appmap/unittest.py, testing_framework.py, recording.py e recorder.py. Verifica che un test runner in-process non generi più "Recording already in progress" e che il test del piano venga completato correttamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- devtools, testing-qa
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100