getsentry / getsentry/sentry-python

Better Test structure

未关闭
#4,480 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Improvement Python Quality Improvement
主要语言
Python
星标
2.2k
派生
669
平均合并
1 天 1 小时
30 天内合并 PR
213

描述

Right now it is hard to get tests right and there is a lot of magic in `conftest.py` (and probably other places) and the isolation of tests is alo lacking (resulting in use of pytest.mark.forked usage)

Idea of a better test structure:

```python

def test_something(sentry_init):
sentry_client = sentry_init(dsn, ...)

# do something

sentry_client.transport.envelopes
# -> array of envelopes

sentry_client.transport.events
# -> array of captured events
```

There is a custom transport on the client that collects data on class internal arrays that can be accessed via properties.

Those arrays should be cleaned after each test run. Should also work in async, and gevent, and eventlet code.

Basically just have one fixture for testing most of the stuff

Also tests should never alter the global state so they are self contained and can run in parallel without pytest markers.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。