@@ -167,3 +167,61 @@ def test_no_remove_falsy_debug(condition):
167167 expected_ast = ast .parse (expected )
168168 actual_ast = remove_debug (source )
169169 compare_ast (expected_ast , actual_ast )
170+
171+
172+ @pytest .mark .parametrize (
173+ 'condition' , [
174+ '__sandwich__' ,
175+ '__sandwich__ is True' ,
176+ '__sandwich__ is False' ,
177+ '__sandwich__ is not False' ,
178+ '__sandwich__ == True' ,
179+ '__sandwich__ == __debug__' ,
180+ '__sandwich() == True' ,
181+ 'func() is True' ,
182+ 'some_call(a, b) is True' ,
183+ 'obj.method() is True' ,
184+ 'obj.attr is True' ,
185+ 'True is something' ,
186+ 'True == something' ,
187+ ]
188+ )
189+ def test_no_remove_not_debug (condition ):
190+ source = '''
191+ value = 10
192+
193+ # Not a __debug__ test
194+ if ''' + condition + ''':
195+ value += 1
196+
197+ print(value)
198+ '''
199+
200+ expected = source
201+
202+ expected_ast = ast .parse (expected )
203+ actual_ast = remove_debug (source )
204+ compare_ast (expected_ast , actual_ast )
205+
206+
207+ def test_no_remove_is_true_in_elif_chain ():
208+ """Regression test for issue #142 - if/elif/else with 'is True' comparisons"""
209+ source = '''
210+ def check_is_internet_working(c):
211+ url, url_hostname = get_url_and_url_hostname(c)
212+
213+ if is_internet_working_socket_test(c, url_hostname) is True:
214+ c.is_internet_connected = True
215+ elif is_internet_working_urllib_open(c, url) is True:
216+ c.is_internet_connected = True
217+ else:
218+ c.is_internet_connected = False
219+
220+ return c.is_internet_connected
221+ '''
222+
223+ expected = source
224+
225+ expected_ast = ast .parse (expected )
226+ actual_ast = remove_debug (source )
227+ compare_ast (expected_ast , actual_ast )
0 commit comments