diffplug / diffplug/selfie

[py] consequences of allowing snapshots based on repr

Abierto
#516 0 comentarios 0 reacciones 0 asignados Ver en GitHub
py
Lenguaje dominante
Kotlin
Estrellas
101
Forks
18
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Python has a very cool `repr()` method, which returns the source code required to create the object. Not everything implements it, but Python's core datastructures do.

For inline snapshots it's pretty easy - we call `repr()` on argument, and put that inside the `to_be()` call.

For disk snapshots, we would have to read the value from the snapshot, call `eval()` on that string, and then hope that the comparison logic is implemented correctly.

In both cases, it muddies the concept of equality a bit, but allowing repr is so convenient that it's worth it.

![Image](https://github.com/user-attachments/assets/fc57d9b7-2d79-439b-bd73-650548bab8b0)

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

El issue analiza snapshots inline que usan repr() y snapshots en disco que leen valores con eval(), pero no menciona archivos ni tests. Empieza localizando las rutas de comparación de los snapshots inline y en disco; después, determina cómo deben manejarse los valores basados en repr() y cómo se valida la igualdad. El trabajo estará completo cuando haya un comportamiento acordado y la cobertura correspondiente para ambos modos de snapshot.

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

Evaluación

Stack tecnológico
python
Área
testing
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.