11import ast
2+ import sys
3+
4+ import pytest
5+
26from python_minifier import unparse
37from python_minifier .ast_compare import compare_ast
48from python_minifier .transforms .remove_explicit_return_none import RemoveExplicitReturnNone
@@ -9,6 +13,7 @@ def remove_return_none(source):
913
1014 return RemoveExplicitReturnNone ()(module )
1115
16+
1217def test_trailing_remove_return_none ():
1318 source = 'def a():a=4;return None'
1419 expected = 'def a():a=4'
@@ -19,6 +24,7 @@ def test_trailing_remove_return_none():
1924
2025 assert unparse (actual_ast ) == expected
2126
27+
2228def test_trailing_implicit_return_none ():
2329 source = 'def a():a=4;return'
2430 expected = 'def a():a=4'
@@ -38,6 +44,7 @@ def test_trailing_remove_return_none_empty_suite():
3844
3945 assert unparse (actual_ast ) == expected
4046
47+
4148def test_trailing_implicit_return_none_empty_suite ():
4249 source = 'def a():return'
4350 expected = 'def a():0'
@@ -46,6 +53,7 @@ def test_trailing_implicit_return_none_empty_suite():
4653 compare_ast (expected_ast , actual_ast )
4754 assert unparse (actual_ast ) == expected
4855
56+
4957def test_trailing_return_value_unchanged ():
5058 source = 'def a():return 0'
5159 expected = source
@@ -54,6 +62,7 @@ def test_trailing_return_value_unchanged():
5462 compare_ast (expected_ast , actual_ast )
5563 assert unparse (actual_ast ) == expected
5664
65+
5766def test_remove_return_none ():
5867 source = '''
5968def a():
@@ -68,6 +77,7 @@ def a():
6877
6978 assert unparse (actual_ast ) == expected
7079
80+
7181def test_implicit_return_none ():
7282 source = '''
7383def a():
@@ -80,6 +90,7 @@ def a():
8090 compare_ast (expected_ast , actual_ast )
8191 assert unparse (actual_ast ) == expected
8292
93+
8394def test_return_value_unchanged ():
8495 source = '''
8596def a():
@@ -92,7 +103,11 @@ def a():
92103 compare_ast (expected_ast , actual_ast )
93104 assert unparse (actual_ast ) == expected
94105
106+
95107def test_async_trailing_remove_return_none ():
108+ if sys .version_info < (3 , 5 ):
109+ pytest .skip ('Async not allowed in python < 3.5' )
110+
96111 source = 'async def a():a=4;return None'
97112 expected = 'async def a():a=4'
98113
@@ -102,7 +117,11 @@ def test_async_trailing_remove_return_none():
102117
103118 assert unparse (actual_ast ) == expected
104119
120+
105121def test_async_trailing_implicit_return_none ():
122+ if sys .version_info < (3 , 5 ):
123+ pytest .skip ('Async not allowed in python < 3.5' )
124+
106125 source = 'async def a():a=4;return'
107126 expected = 'async def a():a=4'
108127 expected_ast = ast .parse (expected )
@@ -112,6 +131,9 @@ def test_async_trailing_implicit_return_none():
112131
113132
114133def test_async_trailing_remove_return_none_empty_suite ():
134+ if sys .version_info < (3 , 5 ):
135+ pytest .skip ('Async not allowed in python < 3.5' )
136+
115137 source = 'async def a():return None'
116138 expected = 'async def a():0'
117139
@@ -121,23 +143,35 @@ def test_async_trailing_remove_return_none_empty_suite():
121143
122144 assert unparse (actual_ast ) == expected
123145
146+
124147def test_async_trailing_implicit_return_none_empty_suite ():
148+ if sys .version_info < (3 , 5 ):
149+ pytest .skip ('Async not allowed in python < 3.5' )
150+
125151 source = 'async def a():return'
126152 expected = 'async def a():0'
127153 expected_ast = ast .parse (expected )
128154 actual_ast = remove_return_none (source )
129155 compare_ast (expected_ast , actual_ast )
130156 assert unparse (actual_ast ) == expected
131157
158+
132159def test_async_trailing_return_value_unchanged ():
160+ if sys .version_info < (3 , 5 ):
161+ pytest .skip ('Async not allowed in python < 3.5' )
162+
133163 source = 'async def a():return 0'
134164 expected = source
135165 expected_ast = ast .parse (expected )
136166 actual_ast = remove_return_none (source )
137167 compare_ast (expected_ast , actual_ast )
138168 assert unparse (actual_ast ) == expected
139169
170+
140171def test_async_remove_return_none ():
172+ if sys .version_info < (3 , 5 ):
173+ pytest .skip ('Async not allowed in python < 3.5' )
174+
141175 source = '''
142176async def a():
143177 if a: return None
@@ -151,7 +185,11 @@ async def a():
151185
152186 assert unparse (actual_ast ) == expected
153187
188+
154189def test_async_implicit_return_none ():
190+ if sys .version_info < (3 , 5 ):
191+ pytest .skip ('Async not allowed in python < 3.5' )
192+
155193 source = '''
156194async def a():
157195 if a: return
@@ -163,7 +201,11 @@ async def a():
163201 compare_ast (expected_ast , actual_ast )
164202 assert unparse (actual_ast ) == expected
165203
204+
166205def test_async_return_value_unchanged ():
206+ if sys .version_info < (3 , 5 ):
207+ pytest .skip ('Async not allowed in python < 3.5' )
208+
167209 source = '''
168210async def a():
169211 if a: return 1
0 commit comments