bpo-32303 - Consistency fixes for namespace loaders (#5481)

* Make sure ``__spec__.loader`` matches ``__loader__`` for namespace packages.
* Make sure ``__spec__.origin` matches ``__file__`` for namespace packages.

https://bugs.python.org/issue32303
https://bugs.python.org/issue32305
This commit is contained in:
Barry Warsaw 2018-02-02 15:15:58 -05:00 committed by GitHub
parent 383b32fe10
commit bbbcf8693b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 1478 additions and 1436 deletions

View file

@ -305,6 +305,7 @@ class ReloadTests:
expected = {'__name__': name,
'__package__': name,
'__doc__': None,
'__file__': None,
}
os.mkdir(name)
with open(bad_path, 'w') as init_file:
@ -316,8 +317,9 @@ class ReloadTests:
spec = ns.pop('__spec__')
ns.pop('__builtins__', None) # An implementation detail.
self.assertEqual(spec.name, name)
self.assertIs(spec.loader, None)
self.assertIsNot(loader, None)
self.assertIsNotNone(spec.loader)
self.assertIsNotNone(loader)
self.assertEqual(spec.loader, loader)
self.assertEqual(set(path),
set([os.path.dirname(bad_path)]))
with self.assertRaises(AttributeError):