dry-python / dry-python/returns

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

Aberta
#876 6 comentários 0 reações 0 responsáveis Ver no GitHub
bug
Linguagem predominante
Python
Estrelas
4.4k
Forks
154
Merge médio
2h 27min
PRs com merge (30d)
22

Descrição

# 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:

```python
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

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece pela implementação de assert_trace do plugin do pytest e reproduza o comportamento com o exemplo de decorator na issue. Adicione ou atualize um teste de regressão mostrando que chamar func_two não satisfaz uma asserção para func_one; está concluído quando o teste mostrado falhar conforme esperado, enquanto as asserções para a função correta continuam passando.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
testing-qa
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.