dry-python / dry-python/returns
`assert_trace` does not work correctly with functions that use the same decorator
- 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
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