comparison tests/test-demandimport.py @ 50951:d718eddf01d9

safehasattr: drop usage in favor of hasattr The two functions should now be equivalent at least in their usage in core.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 31 Aug 2023 23:56:15 +0200
parents 1bd33932713d
children 37f693975cbc be227c60a3e0
comparison
equal deleted inserted replaced
50950:7a8ea1397816 50951:d718eddf01d9
177 except ImportError as inst: 177 except ImportError as inst:
178 assert rsub(r"'", '', str(inst)).startswith( 178 assert rsub(r"'", '', str(inst)).startswith(
179 'cannot import name unknownattr' 179 'cannot import name unknownattr'
180 ) 180 )
181 181
182 from mercurial import util
183
184 # Unlike the import statement, __import__() function should not raise 182 # Unlike the import statement, __import__() function should not raise
185 # ImportError even if fromlist has an unknown item 183 # ImportError even if fromlist has an unknown item
186 # (see Python/import.c:import_module_level() and ensure_fromlist()) 184 # (see Python/import.c:import_module_level() and ensure_fromlist())
187 assert 'ftplib' not in sys.modules 185 assert 'ftplib' not in sys.modules
188 zipfileimp = __import__('ftplib', globals(), locals(), ['unknownattr']) 186 zipfileimp = __import__('ftplib', globals(), locals(), ['unknownattr'])
189 assert f(zipfileimp) == "<module 'ftplib' from '?'>", f(zipfileimp) 187 assert f(zipfileimp) == "<module 'ftplib' from '?'>", f(zipfileimp)
190 assert not util.safehasattr(zipfileimp, 'unknownattr') 188 assert not hasattr(zipfileimp, 'unknownattr')
191 189
192 190
193 # test deactivation for issue6725 191 # test deactivation for issue6725
194 del sys.modules['telnetlib'] 192 del sys.modules['telnetlib']
195 with demandimport.deactivated(): 193 with demandimport.deactivated():