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

`assert_trace` does not work correctly with functions that use the same decorator

Abierto
#876 6 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

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

Línea de trabajo

Comienza por la implementación de assert_trace del plugin de pytest y reproduce el comportamiento con el ejemplo del decorador del issue. Añade o actualiza una prueba de regresión que muestre que llamar a func_two no satisface una aserción para func_one; se considera terminado cuando la prueba mostrada falla como se espera, mientras que las aserciones para la función correcta siguen pasando.

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

Descripción

bug

Bug report

What's wrong

Our assert_trace from pytest plugin doesn't work correctly when two or more different functions are using the same decorator, it not considers that those functions are different! See the example below:

def test_two_functios_using_same_decorator(returns: ReturnsAsserts):
    def decorator(func):
        def decorated(*args, **kwargs):
            return func(*args, **kwargs)
        return decorated

    @decorator
    def func_one():
        return Success(42)

    @decorator
    def func_two():
        return Success(42)

    with returns.assert_trace(Success, func_one):
        func_two()

That test should fail because we want to assert the Success creation inside func_one, but I'm calling func_two and the test is passing!

How is that should be

Our pytest plugin should consider that those functions are different!

System information

  • python version: 3.9
  • returns version: 0.16.0
Lenguaje dominante
Python
Estrellas
4.4k
Forks
154
Merge medio
3 h 5 min
PR fusionados (30 d)
22

Guía de contribución

Abrir la guía de contribución

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 dry-python/returns

Todos los issues de dry-python/returns

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.