Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

mutmut v3 copies source to temp dir, breaking editable-install imports

Abierto
#486 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@Otto-AA ya está trabajando en esto.

Desde el 9/5/2026.

  • #517 de @Otto-AA — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
python
Área
testing-qa

Línea de trabajo

Reproduce el problema con la distribución src/ mostrada, pyproject.toml, tests/test_core.py y mutmut run --paths-to-mutate src/my_project/core.py. Sigue cómo mutmut v3 copia archivos e inicia pytest; después, verifica que las importaciones de una instalación editable se resuelvan en el código mutado y que las mutaciones ya no fallen ni produzcan falsos supervivientes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description

When using mutmut v3 (3.5.0) on a project installed with pip install -e ., mutations fail because mutmut copies source files to a temporary directory where the editable package's import paths no longer resolve.

Reproduction

Project structure:

my-project/
├── pyproject.toml          # [project] name = "my_project"
├── src/
│   └── my_project/
│       ├── __init__.py
│       └── core.py         # file to mutate
└── tests/
    └── test_core.py        # imports my_project.core

Steps:

  1. pip install -e .
  2. pytest tests/ — passes
  3. mutmut run --paths-to-mutate src/my_project/core.py
  4. Mutations fail with ModuleNotFoundError: No module named 'my_project'

Expected behavior

Mutations should run in-place (or with sys.path adjusted) so that editable installs and relative imports continue to work.

Actual behavior

mutmut copies files to /tmp/ (or a mutants/ directory), then runs pytest from that context. The editable install's .pth file points to the original src/ directory, so the mutated code is never imported — or worse, the original un-mutated code is imported instead, producing false "survived" results.

Workaround

Manual mutation testing via subprocess + file patching (mutate in-place, run tests, restore original).

Related

  • #456 reports a similar import path issue with Django projects
  • #485 may also be related (initial test run failure)

Environment

  • mutmut 3.5.0 (pip reports 2.4.5, mutmut.__version__ reports 3.5.0)
  • Python 3.11.9
  • macOS 14 (arm64)
  • Project uses src/ layout with pyproject.toml
Lenguaje dominante
Python
Estrellas
1.5k
Forks
185
Merge medio
1 d 14 h
PR fusionados (30 d)
5

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de boxed/mutmut

Todos los issues de boxed/mutmut

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.