-
-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathtest_best_effort_cli.py
More file actions
179 lines (126 loc) · 4.8 KB
/
test_best_effort_cli.py
File metadata and controls
179 lines (126 loc) · 4.8 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
"""Tests for CLI size-based output selection (best effort) functionality."""
import os
import sys
import tempfile
from subprocess_compat import run_subprocess, safe_decode
def test_returns_minified_when_smaller():
"""Test CLI returns minified output when it's smaller than original."""
code = '''
def hello_world():
"""A simple function."""
print("Hello, world!")
return None
if __name__ == "__main__":
hello_world()
'''
with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False) as f:
f.write(code)
temp_file = f.name
try:
env = os.environ.copy()
env.pop('PYMINIFY_FORCE_BEST_EFFORT', None)
result = run_subprocess([
sys.executable, '-m', 'python_minifier', temp_file
], timeout=30, env=env)
assert result.returncode == 0
stdout_text = safe_decode(result.stdout)
assert len(stdout_text) < len(code)
finally:
os.unlink(temp_file)
def test_returns_original_when_longer():
"""Test CLI returns original code when minified output would be longer."""
code = 'True if 0in x else False'
with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False) as f:
f.write(code)
temp_file = f.name
try:
env = os.environ.copy()
env.pop('PYMINIFY_FORCE_BEST_EFFORT', None)
result = run_subprocess([
sys.executable, '-m', 'python_minifier', temp_file
], timeout=30, env=env)
assert result.returncode == 0
stdout_text = safe_decode(result.stdout)
assert stdout_text == code
finally:
os.unlink(temp_file)
def test_force_minified_with_env_var():
"""Test environment variable forces minified output regardless of size."""
code = 'True if 0in x else False'
expected_output = 'True if 0 in x else False'
with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False) as f:
f.write(code)
temp_file = f.name
try:
env = os.environ.copy()
env['PYMINIFY_FORCE_BEST_EFFORT'] = '1'
result = run_subprocess([
sys.executable, '-m', 'python_minifier', temp_file
], timeout=30, env=env)
assert result.returncode == 0
stdout_text = safe_decode(result.stdout)
assert stdout_text == expected_output
finally:
os.unlink(temp_file)
def test_stdin_behavior():
"""Test size-based logic works with stdin input."""
code = 'True if 0in x else False'
expected_output = 'True if 0 in x else False'
# Without env var - should return original
env = os.environ.copy()
env.pop('PYMINIFY_FORCE_BEST_EFFORT', None)
result = run_subprocess([
sys.executable, '-m', 'python_minifier', '-'
], input_data=code, timeout=30, env=env)
assert result.returncode == 0
stdout_text = safe_decode(result.stdout)
assert stdout_text == code
# With env var - should return minified
env['PYMINIFY_FORCE_BEST_EFFORT'] = '1'
result = run_subprocess([
sys.executable, '-m', 'python_minifier', '-'
], input_data=code, timeout=30, env=env)
assert result.returncode == 0
stdout_text = safe_decode(result.stdout)
assert stdout_text == expected_output
def test_output_file_behavior():
"""Test size-based logic works with --output flag."""
code = 'True if 0in x else False'
with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False) as input_file:
input_file.write(code)
input_filename = input_file.name
with tempfile.NamedTemporaryFile(delete=False) as output_file:
output_filename = output_file.name
try:
env = os.environ.copy()
env.pop('PYMINIFY_FORCE_BEST_EFFORT', None)
result = run_subprocess([
sys.executable, '-m', 'python_minifier',
input_filename, '--output', output_filename
], timeout=30, env=env)
assert result.returncode == 0
with open(output_filename, 'r') as f:
output_content = f.read()
assert output_content == code
finally:
os.unlink(input_filename)
os.unlink(output_filename)
def test_in_place_behavior():
"""Test size-based logic works with --in-place flag."""
code = 'True if 0in x else False'
with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False) as f:
f.write(code)
temp_file = f.name
try:
env = os.environ.copy()
env.pop('PYMINIFY_FORCE_BEST_EFFORT', None)
result = run_subprocess([
sys.executable, '-m', 'python_minifier',
temp_file, '--in-place'
], timeout=30, env=env)
assert result.returncode == 0
with open(temp_file, 'r') as f:
modified_content = f.read()
assert modified_content == code
finally:
os.unlink(temp_file)