Using "\u" escape sequence can produce equivalent mutations.
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 83/100
Línea de trabajo
Empieza con operator_string en src/mutmut/mutation/mutators.py, como sugiere el issue, e inspecciona cómo gestiona las secuencias de escape de cadenas. Usa el script de reproducción del issue para comprobar que los escapes \u y \U ya no producen mutaciones equivalentes, mientras que las demás mutaciones de cadenas siguen funcionando. La tarea estará terminada cuando el reproducer deje de emitir un caso de mutación de escape Unicode que solo difiera en mayúsculas y minúsculas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hello,
Bug description
If strings contain unicode symbols with syntax "\u00A0", mutmut generates a mutation of "\u00a0".
Both literals evaluate to the same symbol (non-breaking space).
Therefor it is impossible to catch this mutation using a test:
print("\u00a0" == "\u00A0") # True
Steps to reproduce the bug
You can use the following script to see the bug:
import libcst as cst
from mutmut.mutation.mutators import operator_string
source = r'u"\u00a0"'
node = cst.parse_expression(source)
print("Input: ", source, "Evaluated value:", repr(eval(source)))
for result in operator_string(node):
print("Mutation:", result.value, "Evaluated value:", repr(eval(result.value)))
# Input: u"\u00a0" Evaluated value: '\xa0'
# Mutation: u"XX\u00a0XX" Evaluated value: 'XX\xa0XX'
# Mutation: u"\u00A0" Evaluated value: '\xa0'
Suggested fix:
Update def operator_string in src/mutmut/mutation/mutators.py, so that no mutation is being generated for \u or \U syntax.
https://github.com/boxed/mutmut/blob/7d5fff33cff22da5f6d0eb1a7bdc764362444221/src/mutmut/mutation/mutators.py#L58-L60
- Lenguaje dominante
- Python
- Estrellas
- 1.5k
- Forks
- 182
- Merge medio
- 2 d 14 h
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de boxed/mutmut
-
Removing `not` from a parenthesized multi-line expression drops the parentheses (InvalidGeneratedSyntaxException, 3.8.0)Posiblemente ocupada @jihtsan la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 3 días
-
`run` with a `name__mutmut_*` pattern runs the whole test suite in the clean-test checkPosiblemente ocupada @Ishaan400 la tomó hace 12 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
boxed/mutmut#592 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Invalid unary plus generated in match statementPosiblemente ocupada @GhostCoder6969 la tomó hace 21 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 3 días
-
What do the emoji's mean?Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
boxed/mutmut#560 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
boxed/mutmut#529 · 7 comentarios ·
Los mantenedores suelen responder en 3 días
Todos los issues de boxed/mutmut
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
zach-blumenfeld/aip#13 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
nathanmarlor/foxess_modbus#1287 ·
Los mantenedores suelen responder en 4 días
-
bug good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
OpenLakeForge/openlakeforge#498 ·
Los mantenedores suelen responder en 1 día
-
good first issue hacktoberfest help wanted python
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Los mantenedores suelen responder en 1 día
-
Exact onnxruntime==1.27.0 core pin makes Pipecat-based apps uninstallable from the dashboardAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
pollen-robotics/reachy_mini#1493 ·
Los mantenedores suelen responder en 1 día