Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Concurrent async fixture setup / teardown

Đang mở
#118 3 bình luận 10 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
30/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
testing

Hướng nghiên cứu

Bắt đầu bằng cách xem lại ví dụ về dependency của async fixture trong issue và cách pytest hiện sắp xếp việc setup và teardown của fixture. Xác định liệu setup và teardown đồng thời có thể duy trì thứ tự dependency và các đảm bảo về cleanup hay không. Hoàn thành có nghĩa là behavior và scope được hỗ trợ đã được xác định, với các test bao quát thứ tự thực thi được đề xuất.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

This is more an idea / question how hard it would be.

While pytest ensures stable fixture order, it's made with synchronous fixtures in mind.

pytest-asyncio on the other hand allows for async fixtures and typically async test cases imply async code under test which implies async dependencies which imply async fixtures.

Thus, how about running setup and teardown asynchronously too, for example:

@pytest.fixture
async def A():
    ...
    yield
    ...

@pytest.fixture
async def B(A):
    ...
    yield
    ...

@pytest.fixture
async def C(A):
    ...
    yield
    ...

@pytest.fixture
async def D(B, C):
    ...
    yield
    ...

Would run as:

  • A setup
  • asyncio.gather(B setup, C setup)
  • D setup
  • test case
  • D teardown
  • asyncio.gather(B teardown, C teardown)
  • A teardown
Ngôn ngữ chính
Python
Star
1.7k
Fork
207
Merge trung bình
5 giờ 2 phút
Pull request đã merge (30 ngày)
11

Chuẩn bị môi trường

Chúng tôi chưa kiểm tra các tệp thiết lập môi trường của dự án này. Hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của pytest-dev/pytest-asyncio

Tất cả issue của pytest-dev/pytest-asyncio

Issue tương tự

Thêm issue về Python

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.