Hướng dẫn python requests mock timeout - python yêu cầu thời gian chờ giả
Có hai vấn đề tôi thấy ở đây. Một điều trực tiếp khắc phục vấn đề của bạn và thứ hai là một chút lạm dụng khung bắt giữ giúp đơn giản hóa hơn nữa việc thực hiện của bạn. Show Đầu tiên, để giải quyết trực tiếp vấn đề của bạn, dựa trên cách bạn đang tìm cách kiểm tra khẳng định của mình, những gì bạn thực sự đang muốn làm ở đây:
Bạn nên sử dụng 2 ở đây để giúp nâng cao ngoại lệ của bạn. Theo tài liệu:
Với ý nghĩ đó, tất cả những gì bạn thực sự cần làm là thế này:
Điều đó sẽ có được ngoại lệ của bạn để nâng cao. Tuy nhiên, rất có thể bạn có thể phải đối mặt với lỗi này:
Điều này có thể được giải thích tốt nhất bằng cách thực sự đọc câu trả lời tuyệt vời này về lý do tại sao điều đó đang xảy ra. Với câu trả lời đó, thực hiện đề xuất đó để thực sự chỉ chế giễu những gì bạn cần sẽ giúp giải quyết đầy đủ vấn đề của bạn. Vì vậy, cuối cùng, mã của bạn thực sự sẽ trông giống như thế này, với 3 bị chế giễu thay vì mô -đun 4 bị chế giễu:
Bây giờ bạn thực sự có thể đơn giản hóa điều này hơn nữa bằng cách sử dụng tốt hơn những gì không hợp nhất với 5 thay vì thử/ngoại trừ. Điều này cuối cùng sẽ chỉ khẳng định rằng ngoại lệ đã được nêu ra khi phương thức được gọi. Hơn nữa, bạn không cần phải tạo một phương pháp mới sẽ tăng thời gian chờ, bạn thực sự có thể nói đơn giản rằng bạn bị chế giễu sẽ có một 2 làm tăng ngoại lệ. Vì vậy, bạn có thể thay thế toàn bộ 7 chỉ bằng cách này:
Tuy nhiên, bạn thực sự có thể đặt trực tiếp điều này vào trình trang trí bản vá của mình, vì vậy, bây giờ mã cuối cùng của bạn sẽ trông như thế này:
Tôi hi vọng cái này giúp được! Tôi đang tìm cách xử lý các ngoại lệ thời gian chờ cho bot reddit của tôi sử dụng praw (python). Nó đã hết ít nhất một lần mỗi ngày và nó có một biến được mã hóa, vì vậy tôi phải cập nhật biến và sau đó chạy lại bot theo cách thủ công. Tôi đang tìm cách để tự động xử lý các ngoại lệ này. Tôi đã xem xét thử: và ngoại trừ :, nhưng tôi sợ rằng việc thêm một điểm ngắt sau thời gian.s ngủ (10) sẽ dừng vòng lặp hoàn toàn. Tôi muốn nó tiếp tục chạy vòng lặp bất kể nó có hết thời gian hay không. Có một mẫu của mã dưới đây. Nội phân chính
Chepner 461K67 Huy hiệu vàng485 Huy hiệu bạc628 Huy hiệu Đồng67 gold badges485 silver badges628 bronze badges Được hỏi ngày 16 tháng 9 năm 2016 lúc 13:43Sep 16, 2016 at 13:43 Di chuyển giấc ngủ để cuối cùng sẽ giải quyết vấn đề của bạn, tôi đoán. Cuối cùng, Block sẽ chạy bất kể có ngoại lệ có xảy ra hay không.
Đã trả lời ngày 16 tháng 9 năm 2016 lúc 14:43Sep 16, 2016 at 14:43 Thiruvenkadamthiruvenkadamthiruvenkadam 4.0183 Huy hiệu vàng26 Huy hiệu bạc26 Huy hiệu đồng3 gold badges26 silver badges26 bronze badges Nó phụ thuộc vào những gì bạn muốn làm khi thời gian chờ xảy ra. Bạn có thể tạo một 8 để không làm gì và tiếp tục với vòng lặp.
Trong trường hợp của bạn sẽ tốt hơn nếu viết nó một cách rõ ràng như
Nhưng bạn cũng có thể thêm một số đăng nhập vào mệnh đề ngoại trừ 0Để đảm bảo rằng vòng lặp luôn ngủ bạn có thể làm như sau: 1Đã trả lời ngày 16 tháng 9 năm 2016 lúc 13:48Sep 16, 2016 at 13:48 AlualuAlu 7275 Huy hiệu bạc16 Huy hiệu Đồng5 silver badges16 bronze badges 8 Sau đây là 30 ví dụ mã của các yêu cầu. Exexceptions.timeout (). Bạn có thể bỏ phiếu cho những người bạn thích hoặc bỏ phiếu cho những người bạn không thích và đi đến dự án gốc hoặc tệp nguồn bằng cách theo các liên kết trên mỗi ví dụ. Bạn cũng có thể muốn kiểm tra tất cả các chức năng/lớp có sẵn của các yêu cầu mô -đun.30 code examples of requests.exceptions.Timeout(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module requests.exceptions, or try the search function Ví dụ 1 2Ví dụ #2 3Ví dụ #3 4Ví dụ #4 5Ví dụ #5 6Ví dụ #6 7Ví dụ #7 8Ví dụ #8 9Ví dụ #9 0Ví dụ #10 1Ví dụ #11 2Ví dụ #12 3Ví dụ #13 4Ví dụ #14 5Ví dụ #15 6Ví dụ #16 7Ví dụ #17 8Ví dụ #18 9Ví dụ #19 0Ví dụ #20 1Ví dụ #21 2Ví dụ #22 3Ví dụ #23 4Ví dụ #24 5Ví dụ #25 6Ví dụ #26 7Ví dụ #27 8Ví dụ #28 9Ví dụ #29 0Ví dụ #30 1Làm thế nào để bạn sửa lỗi thời gian chờ trong Python?Trong Python, sử dụng stdin.readline () và stdout.write () thay vì đầu vào và in. Đảm bảo rằng giá trị đầu vào cho các trường hợp thử nghiệm được truyền ở định dạng dự kiến.use the stdin. readline() and stdout. write() instead of input and print. Ensure that the input value to test cases is passed in the expected format. Làm thế nào để bạn viết các ngoại lệ thời gian chờ trong Python?Trong trường hợp không còn yêu cầu, hãy tăng thời gian chờ ngoại lệ. Đầu ra mẫu: Thời gian chờ = 0,001 HTTPSConnectionPool (host = 'github.com', port = 443): MAX RETRES vượt quá URL: / (gây ra bởi ConnectItesouterRor (raise Timeout exception.
Sample Output: timeout = 0.001 HTTPSConnectionPool(host='github.com', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError( Bạn có thể thử sử dụng một số thuộc tính khác để xác định vị trí phần tử như bộ chọn CSS hoặc XPath. Sử dụng sự chờ đợi rõ ràng. Điều này sẽ đảm bảo tất cả thời gian chờ xảy ra sau thời gian nhất định. Điều này nên được tuyên bố khi bắt đầu chương trình trước khi thực hiện bất kỳ nhiệm vụ nào.Use explicit waits. This will ensure all timeouts happen after the given time. This should be
declared at the start of the program before carrying out any tasks. Để đặt thời gian chờ trong các yêu cầu Python, bạn có thể vượt qua tham số "Hết thời gian" để nhận, đăng, đặt, đầu và xóa các phương thức. Tham số "Thời gian chờ" cho phép bạn chọn thời gian tối đa (số giây) để hoàn thành yêu cầu. Theo mặc định, các yêu cầu không có thời gian chờ trừ khi bạn chỉ định rõ ràng một.pass the "timeout" parameter for GET, POST, PUT, HEAD, and DELETE methods. The "timeout" parameter allows you to select the maximum time (number of seconds) for the request to complete. By default, requests do not have a timeout unless you explicitly specify one. |