dry-python / dry-python/returns

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

Đang mở
#876 6 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Python
Star
4.4k
Fork
155
Merge trung bình
2 giờ 27 phút
Pull request đã merge (30 ngày)
22

Mô tả

# 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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.