xref: /unit/test/unit/utils.py (revision 1735)
1*1735Szelenkov@nginx.comimport os
2*1735Szelenkov@nginx.comimport socket
3*1735Szelenkov@nginx.comimport time
4*1735Szelenkov@nginx.com
5*1735Szelenkov@nginx.comimport pytest
6*1735Szelenkov@nginx.com
7*1735Szelenkov@nginx.com
8*1735Szelenkov@nginx.comdef public_dir(path):
9*1735Szelenkov@nginx.com    os.chmod(path, 0o777)
10*1735Szelenkov@nginx.com
11*1735Szelenkov@nginx.com    for root, dirs, files in os.walk(path):
12*1735Szelenkov@nginx.com        for d in dirs:
13*1735Szelenkov@nginx.com            os.chmod(os.path.join(root, d), 0o777)
14*1735Szelenkov@nginx.com        for f in files:
15*1735Szelenkov@nginx.com            os.chmod(os.path.join(root, f), 0o777)
16*1735Szelenkov@nginx.com
17*1735Szelenkov@nginx.com
18*1735Szelenkov@nginx.comdef waitforfiles(*files):
19*1735Szelenkov@nginx.com    for i in range(50):
20*1735Szelenkov@nginx.com        wait = False
21*1735Szelenkov@nginx.com
22*1735Szelenkov@nginx.com        for f in files:
23*1735Szelenkov@nginx.com            if not os.path.exists(f):
24*1735Szelenkov@nginx.com                wait = True
25*1735Szelenkov@nginx.com                break
26*1735Szelenkov@nginx.com
27*1735Szelenkov@nginx.com        if not wait:
28*1735Szelenkov@nginx.com            return True
29*1735Szelenkov@nginx.com
30*1735Szelenkov@nginx.com        time.sleep(0.1)
31*1735Szelenkov@nginx.com
32*1735Szelenkov@nginx.com    return False
33*1735Szelenkov@nginx.com
34*1735Szelenkov@nginx.com
35*1735Szelenkov@nginx.comdef waitforsocket(port):
36*1735Szelenkov@nginx.com    for i in range(50):
37*1735Szelenkov@nginx.com        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
38*1735Szelenkov@nginx.com            try:
39*1735Szelenkov@nginx.com                sock.settimeout(5)
40*1735Szelenkov@nginx.com                sock.connect(('127.0.0.1', port))
41*1735Szelenkov@nginx.com                return
42*1735Szelenkov@nginx.com
43*1735Szelenkov@nginx.com            except ConnectionRefusedError:
44*1735Szelenkov@nginx.com                time.sleep(0.1)
45*1735Szelenkov@nginx.com
46*1735Szelenkov@nginx.com            except KeyboardInterrupt:
47*1735Szelenkov@nginx.com                raise
48*1735Szelenkov@nginx.com
49*1735Szelenkov@nginx.com    pytest.fail('Can\'t connect to the 127.0.0.1:' + port)
50*1735Szelenkov@nginx.com
51