1.0.2: test_startup_without_pattern
and test_startup_with_pattern_and_callback
fails #154
Open
Description
Describe the bug
I run tests for pytest-xprocess
version 1.0.2
and the following tests fails:
=========================== short test summary info ============================
FAILED test_process_initialization.py::test_startup_without_pattern[s1] - ConnectionRefusedError: [Errno 146] Connection refused
FAILED test_process_initialization.py::test_startup_without_pattern[s2] - ConnectionRefusedError: [Errno 146] Connection refused
FAILED test_process_initialization.py::test_startup_without_pattern[s3] - ConnectionRefusedError: [Errno 146] Connection refused
FAILED test_process_initialization.py::test_startup_with_pattern_and_callback[s1-will not match-21] - Failed: DID NOT RAISE <class 'RuntimeError'>
FAILED test_process_initialization.py::test_startup_with_pattern_and_callback[s2-spam, bacon, eggs-30] - ConnectionRefusedError: [Errno 146] Connection refused
FAILED test_process_initialization.py::test_startup_with_pattern_and_callback[s3-finally started-130] - ConnectionRefusedError: [Errno 146] Connection refused
======================== 6 failed, 45 passed in 41.26s =========================
To Reproduce
Run tests. It is easily reproducible in my environment.
Expected behavior
All tests pass.
Screenshots
N/A
Environment (please complete the following information):
- OS: OpenIndiana
- Python Version 3.9.19
- pytest-xprocess version 1.0.2
Additional context
I found that when I do this:
--- pytest-xprocess-1.0.2/tests/test_process_initialization.py.orig
+++ pytest-xprocess-1.0.2/tests/test_process_initialization.py
@@ -1,5 +1,6 @@
import socket
import sys
+import time
from pathlib import Path
import pytest
@@ -126,6 +127,7 @@
args = [sys.executable, server_path, tcp_port, "--no-children"]
def startup_check(self):
+ time.sleep(1)
return request_response_cycle(tcp_port, data)
xprocess.ensure(proc_name, Starter)
@@ -153,6 +155,7 @@
args = [sys.executable, server_path, tcp_port, "--no-children"]
def startup_check(self):
+ time.sleep(1)
return request_response_cycle(tcp_port, data)
if proc_name == "s1":
then all tests pass. It looks like the problem is some kind of race condition.