gh-123930: Correct test of attribute failure to account for iOS (#125959)

Update a test of importing attributes from binary modules to account for iOS conditions.
This commit is contained in:
Russell Keith-Magee 2024-10-25 15:18:45 +08:00 committed by GitHub
parent 2513593303
commit 75401febc9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 6 additions and 2 deletions

View File

@ -370,10 +370,14 @@ class ImportTests(unittest.TestCase):
from _testcapi import i_dont_exist from _testcapi import i_dont_exist
self.assertEqual(cm.exception.name, '_testcapi') self.assertEqual(cm.exception.name, '_testcapi')
if hasattr(_testcapi, "__file__"): if hasattr(_testcapi, "__file__"):
self.assertEqual(cm.exception.path, _testcapi.__file__) # The path on the exception is strictly the spec origin, not the
# module's __file__. For most cases, these are the same; but on
# iOS, the Framework relocation process results in the exception
# being raised from the spec location.
self.assertEqual(cm.exception.path, _testcapi.__spec__.origin)
self.assertRegex( self.assertRegex(
str(cm.exception), str(cm.exception),
r"cannot import name 'i_dont_exist' from '_testcapi' \(.*\.(so|fwork|pyd)\)" r"cannot import name 'i_dont_exist' from '_testcapi' \(.*(\.(so|pyd))?\)"
) )
else: else:
self.assertEqual( self.assertEqual(