Serhiy Storchaka
086c6b1b0f
bpo-45046: Support context managers in unittest (GH-28045)
...
Add methods enterContext() and enterClassContext() in TestCase.
Add method enterAsyncContext() in IsolatedAsyncioTestCase.
Add function enterModuleContext().
2022-05-08 17:49:09 +03:00
Miro Hrončok
ae1965ccb4
bpo-45703: Invalidate _NamespacePath cache on importlib.invalidate_ca… (GH-29384)
...
Consider the following directory structure:
.
└── PATH1
└── namespace
└── sub1
└── __init__.py
And both PATH1 and PATH2 in sys path:
$ PYTHONPATH=PATH1:PATH2 python3.11
>>> import namespace
>>> import namespace.sub1
>>> namespace.__path__
_NamespacePath(['.../PATH1/namespace'])
>>> ...
While this interpreter still runs, PATH2/namespace/sub2 is created:
.
├── PATH1
│ └── namespace
│ └── sub1
│ └── __init__.py
└── PATH2
└── namespace
└── sub2
└── __init__.py
The newly created module cannot be imported:
>>> ...
>>> namespace.__path__
_NamespacePath(['.../PATH1/namespace'])
>>> import namespace.sub2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'namespace.sub2'
Calling importlib.invalidate_caches() now newly allows to import it:
>>> import importlib
>>> importlib.invalidate_caches()
>>> namespace.__path__
_NamespacePath(['.../PATH1/namespace'])
>>> import namespace.sub2
>>> namespace.__path__
_NamespacePath(['.../PATH1/namespace', '.../PATH2/namespace'])
This was not previously possible.
2021-11-23 07:38:02 -08:00
Barry Warsaw
876fc7fcec
bpo-35673: Add a public alias for namespace package __loader__ attribute ( #29049 )
...
Rename namespace package __loader__ class to be public.
Make the old name, i.e. _NamespaceLoader, an alias for the public name, for backward compatibility.
2021-10-20 14:05:29 -07:00
Brett Cannon
1899087b21
bpo-42136: Deprecate module_repr() as found in importlib (GH-25022)
2021-03-26 11:55:07 -07:00
Brett Cannon
9cb31d6716
bpo-42137: have ModuleType.__repr__ prefer __spec__ over module_repr() (GH-24953)
...
This is to work towards the removal of the use of module_repr() in Python 3.12 (documented as deprecated since 3.4).
2021-03-24 08:26:56 -07:00
Anthony Sottile
ab9b31f947
bpo-35843: Implement __getitem__ for _NamespacePath (GH-11690)
2019-03-08 10:58:00 -08:00
Barry Warsaw
bbbcf8693b
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
2018-02-02 15:15:58 -05:00
Eric Snow
d65018b17c
Fixes #19711 : Add tests for reloading namespace packages.
2016-05-10 15:29:05 -06:00
Serhiy Storchaka
e437a10d15
Issue #23277 : Remove unused imports in tests.
2016-04-24 21:41:02 +03:00
Serhiy Storchaka
597d15afe4
Issue #23277 : Remove unused support.run_unittest import.
2016-04-24 13:45:58 +03:00
Eric Snow
c4bbd7a492
Issue #21097 : Move test_namespace_pkgs into test_importlib.
2014-03-29 15:57:44 -06:00