diffplug / diffplug/selfie

[py] consequences of allowing snapshots based on repr

Aperta
#516 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
py
Lingua principale
Kotlin
Stelle
101
Fork
18
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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)

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

La issue riguarda gli snapshot inline che usano repr() e gli snapshot su disco che leggono i valori con eval(), ma non indica file o test. Inizia individuando i percorsi di confronto degli snapshot inline e su disco, quindi determina come devono essere gestiti i valori basati su repr() e come viene convalidata l’uguaglianza. Il lavoro è completo quando esistono un comportamento concordato e la relativa copertura per entrambe le modalità di snapshot.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
testing
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.