-
-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathtest_client_check.py
More file actions
104 lines (87 loc) · 2.86 KB
/
test_client_check.py
File metadata and controls
104 lines (87 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import os
import pytest
import subprocess
import tempfile
import configparser
@pytest.mark.parametrize("config_fname", ["./tests/_local_test_config.conf"])
@pytest.mark.parametrize("cleanup", [False, True])
@pytest.mark.parametrize("print_level", ["all", "files-with-urls-only", "fails-only", "success-only", "none"])
@pytest.mark.parametrize("force_pass", [False, True])
@pytest.mark.parametrize("rcount", [1, 3])
@pytest.mark.parametrize("timeout", [3, 5])
def test_client_general(config_fname, cleanup, print_level, force_pass, rcount, timeout):
# init config parser
config = configparser.ConfigParser()
config.read(config_fname)
# init env variables
path = config["DEFAULT"]["git_path_test_value"]
file_types = config["DEFAULT"]["file_types_test_values"]
white_listed_urls = config["DEFAULT"]["white_listed_test_urls"]
white_listed_patterns = config["DEFAULT"]["white_listed__test_patterns"]
# Generate command
cmd = [
"urlchecker",
"check",
"--subfolder",
"test_files",
"--file-types",
file_types,
"--white-listed-files",
"conf.py",
"--print_level",
print_level,
"--white-listed-urls",
white_listed_urls,
"--white-listed_patterns",
white_listed_patterns,
"--retry-count",
str(rcount),
"--timeout",
str(timeout),
]
# Add boolean arguments
if cleanup:
cmd.append("--cleanup")
if force_pass:
cmd.append("--force-pass")
# Add final path
cmd.append(path)
# excute script
pipe = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
@pytest.mark.parametrize("save", [True])
def test_client_save(save):
# init config parser
config = configparser.ConfigParser()
config.read("./tests/_local_test_config.conf")
# init env variables
path = config["DEFAULT"]["git_path_test_value"]
file_types = config["DEFAULT"]["file_types_test_values"]
white_listed_urls = config["DEFAULT"]["white_listed_test_urls"]
white_listed_patterns = config["DEFAULT"]["white_listed__test_patterns"]
# Generate command
cmd = [
"urlchecker",
"check",
"--subfolder",
"test_files",
"--file-types",
file_types,
"--white-listed-files",
"conf.py",
"--white-listed-urls",
white_listed_urls,
"--white-listed_patterns",
white_listed_patterns,
]
# Write to file
if save:
output_csv = tempfile.NamedTemporaryFile(suffix=".csv", prefix="urlchecker-")
cmd += ["--save", output_csv.name]
# Add final path
cmd.append(path)
print(" ".join(cmd))
# excute script
pipe = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if save:
if not os.path.exists(output_csv.name):
raise AssertionError