Skip to content

Commit b673581

Browse files
[3.13] gh-123930: Correct test of attribute failure to account for iOS (GH-125959) (#125960)
gh-123930: Correct test of attribute failure to account for iOS (GH-125959) Update a test of importing attributes from binary modules to account for iOS conditions. (cherry picked from commit 75401fe) Co-authored-by: Russell Keith-Magee <[email protected]>
1 parent 32830cf commit b673581

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

Lib/test/test_import/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -389,10 +389,14 @@ def test_from_import_missing_attr_has_name_and_so_path(self):
389389
from _testcapi import i_dont_exist
390390
self.assertEqual(cm.exception.name, '_testcapi')
391391
if hasattr(_testcapi, "__file__"):
392-
self.assertEqual(cm.exception.path, _testcapi.__file__)
392+
# The path on the exception is strictly the spec origin, not the
393+
# module's __file__. For most cases, these are the same; but on
394+
# iOS, the Framework relocation process results in the exception
395+
# being raised from the spec location.
396+
self.assertEqual(cm.exception.path, _testcapi.__spec__.origin)
393397
self.assertRegex(
394398
str(cm.exception),
395-
r"cannot import name 'i_dont_exist' from '_testcapi' \(.*\.(so|fwork|pyd)\)"
399+
r"cannot import name 'i_dont_exist' from '_testcapi' \(.*(\.(so|pyd))?\)"
396400
)
397401
else:
398402
self.assertEqual(

0 commit comments

Comments
 (0)