summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_imp.py
Commit message (Collapse)AuthorAgeFilesLines
* gh-98040: Remove just the `imp` module (#98573)Barry Warsaw2023-04-281-524/+0
|
* gh-98040: Move the Single-Phase Init Tests Out of test_imp (gh-102561)Eric Snow2023-04-191-840/+0
| | | I recently added some tests to test_imp, but @warsaw is removing that file in gh-98573. The tests are worth keeping so here I'm moving them to test_import.
* gh-102251: Updates to test_imp Toward Fixing Some Refleaks (gh-102254)Eric Snow2023-02-271-282/+828
| | | | | | | This is related to fixing the refleaks introduced by commit 096d009. I haven't been able to find the leak yet, but these changes are a consequence of that effort. This includes some cleanup, some tweaks to the existing tests, and a bunch of new test cases. The only change here that might have impact outside the tests in question is in imp.py, where I update imp.load_dynamic() to use spec_from_file_location() instead of creating a ModuleSpec directly. Also note that I've updated the tests to only skip if we're checking for refleaks (regrtest's --huntrleaks), whereas in gh-101969 I had skipped the tests entirely. The tests will be useful for some upcoming work and I'd rather the refleaks not hold that up. (It isn't clear how quickly we'll be able to fix the leaking code, though it will certainly be done in the short term.) https://github.com/python/cpython/issues/102251
* gh-101758: Fix Refleak-Related Failures in test_singlephase_variants (gh-101969)Eric Snow2023-02-171-1/+13
| | | | | gh-101891 is causing failures under `$> ./python -m test test_imp -R 3:3`. Furthermore, with that fixed, "test_singlephase_variants" is leaking references. This change addresses the first part, but skips the leaking tests until we can follow up with a fix. https://github.com/python/cpython/issues/101758
* gh-101758: Fix the wasm Buildbots (gh-101943)Eric Snow2023-02-161-1/+11
| | | | | They were broken by gh-101920. https://github.com/python/cpython/issues/101758
* gh-101758: Add a Test For Single-Phase Init Modules in Multiple Interpreters ↵Eric Snow2023-02-151-0/+73
| | | | | | | (gh-101920) The test verifies the behavior of single-phase init modules when loaded in multiple interpreters. https://github.com/python/cpython/issues/101758
* gh-101758: Clean Up Uses of Import State (gh-101919)Eric Snow2023-02-151-1/+1
| | | | | | | | | | | | | | | This change is almost entirely moving code around and hiding import state behind internal API. We introduce no changes to behavior, nor to non-internal API. (Since there was already going to be a lot of churn, I took this as an opportunity to re-organize import.c into topically-grouped sections of code.) The motivation is to simplify a number of upcoming changes. Specific changes: * move existing import-related code to import.c, wherever possible * add internal API for interacting with import state (both global and per-interpreter) * use only API outside of import.c (to limit churn there when changing the location, etc.) * consolidate the import-related state of PyInterpreterState into a single struct field (this changes layout slightly) * add macros for import state in import.c (to simplify changing the location) * group code in import.c into sections *remove _PyState_AddModule() https://github.com/python/cpython/issues/101758
* gh-101758: Add a Test For Single-Phase Init Module Variants (gh-101891)Eric Snow2023-02-141-0/+199
| | | | | The new test exercises the most important variants for single-phase init extension modules. We also add some explanation about those variants to import.c. https://github.com/python/cpython/issues/101758
* gh-99578: Fix refleak in _imp.create_builtin() (#99642)Victor Stinner2022-11-211-0/+30
| | | | Fix a reference bug in _imp.create_builtin() after the creation of the first sub-interpreter for modules "builtins" and "sys".
* gh-98354: Add unicode check for 'name' attribute in _imp_create_builtin ↵chgnrdv2022-10-201-0/+34
| | | | | (GH-98412) Fixes #98354
* gh-96272: Replace `test_source_encoding`'s `test_pep263` with ↵Michael Droettboom2022-08-251-5/+1
| | | | | | | | | | | | `test_import_encoded_module` from `test_imp` (GH-96275) Editors don't agree that `test_source_encoding.py` was valid koi8-r, making it hard to edit that file without the editor breaking it in some way (see gh-96272). Only one test actually relied on the koi8-r encoding and it was a duplicate of a test from the deprecated `imp` module's `test_imp`, so here we replace `test_pep263` with `test_import_encoded_module` stolen from `test_imp` and set `test_source_encoding.py`'s encoding to utf-8 to make editing it easier going forward.
* gh-92169: Use warnings_helper.import_deprecated() to import deprecated ↵Hugo van Kemenade2022-05-031-3/+2
| | | | modules uniformly in tests (GH-92170)
* bpo-40280: Misc fixes for wasm32-emscripten (GH-30722)Christian Heimes2022-01-201-1/+1
|
* bpo-29410: Change the default hash algorithm to SipHash13. (GH-28752)Inada Naoki2021-10-101-2/+2
| | | | Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no> Co-authored-by: Christian Heimes <christian@python.org>
* bpo-45020: Freeze some of the modules imported during startup. (gh-28335)Eric Snow2021-09-151-9/+14
| | | | | | | Doing this provides significant performance gains for runtime startup (~15% with all the imported modules frozen). We don't yet freeze all the imported modules because there are a few hiccups in the build systems we need to sort out first. (See bpo-45186 and bpo-45188.) Note that in PR GH-28320 we added a command-line flag (-X frozen_modules=[on|off]) that allows users to opt out of (or into) using frozen modules. The default is still "off" but we will change it to "on" as soon as we can do it in a way that does not cause contributors pain. https://bugs.python.org/issue45020
* bpo-43651: PEP 597: Fix EncodingWarning in some tests (GH-25181)Inada Naoki2021-04-051-4/+4
| | | | | | * Fix test_shutil * Fix test_imp * Fix test_import * Fix test_importlib
* bpo-40275: Use new test.support helper submodules in tests (GH-20849)Hai Shi2020-06-251-18/+20
|
* bpo-35321: Set the spec origin to frozen in frozen modules (#11732)Nina Zakharenko2019-02-051-0/+11
| | | | | | | | | | * bpo-35321: Set the spec origin to frozen in frozen modules This fix correctly sets the spec origin to "frozen" for the _frozen_importlib module. Note that the origin was already correctly set in _frozen_importlib_external. * 📜🤖 Added by blurb_it.
* closes bpo-34056: Always return bytes from _HackedGetData.get_data(). (GH-8130)Benjamin Peterson2018-07-071-0/+15
| | | | | | | | | | * Always return bytes from _HackedGetData.get_data(). Ensure the imp.load_source shim always returns bytes by reopening the file in binary mode if needed. Hash-based pycs have to receive the source code in bytes. It's tempting to change imp.get_suffixes() to always return 'rb' as a mode, but that breaks some stdlib tests and likely 3rdparty code, too.
* closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575)Benjamin Peterson2017-12-091-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | Python now supports checking bytecode cache up-to-dateness with a hash of the source contents rather than volatile source metadata. See the PEP for details. While a fairly straightforward idea, quite a lot of code had to be modified due to the pervasiveness of pyc implementation details in the codebase. Changes in this commit include: - The core changes to importlib to understand how to read, validate, and regenerate hash-based pycs. - Support for generating hash-based pycs in py_compile and compileall. - Modifications to our siphash implementation to support passing a custom key. We then expose it to importlib through _imp. - Updates to all places in the interpreter, standard library, and tests that manually generate or parse pyc files to grok the new format. - Support in the interpreter command line code for long options like --check-hash-based-pycs. - Tests and documentation for all of the above.
* Fix miscellaneous typos (#4275)luzpaz2017-11-051-1/+1
|
* bpo-31676: Fix test_imp.test_load_source() side effect (#3871)Victor Stinner2017-10-131-2/+7
| | | | test_load_source() now replaces the current __name__ module with a temporary module to prevent side effects.
* bpo-31315: Fix an assertion failure in imp.create_dynamic(), when spec.name ↵Oren Milman2017-09-191-0/+11
| | | | is not a string. (#3257)
* bpo-31370: Remove support for threads-less builds (#3385)Antoine Pitrou2017-09-071-5/+0
| | | | | | * Remove Setup.config * Always define WITH_THREAD for compatibility.
* [security] bpo-13617: Reject embedded null characters in wchar* strings. (#2302)Serhiy Storchaka2017-06-281-0/+4
| | | | | | | Based on patch by Victor Stinner. Add private C API function _PyUnicode_AsUnicode() which is similar to PyUnicode_AsUnicode(), but checks for null characters.
* Remove more unused imports in tests.Serhiy Storchaka2016-04-241-1/+0
|
* Issue #25487: Fix tests not updated when the imp module moved to aBrett Cannon2015-10-301-1/+1
| | | | | | DeprecationWarning. Thanks to Martin Panter for finding the tests.
* Close #24748: Restore imp.load_dynamic compatibilityNick Coghlan2015-09-051-0/+24
| | | | | | | | To resolve a compatibility problem found with py2exe and pywin32, imp.load_dynamic() once again ignores previously loaded modules to support Python modules replacing themselves with extension modules. Patch by Petr Viktorin.
* Issue #23731: Implement PEP 488.Brett Cannon2015-04-131-114/+1
| | | | | | The concept of .pyo files no longer exists. Now .pyc files have an optional `opt-` tag which specifies if any extra optimizations beyond the peepholer were applied.
* Issue #22390: Remove files created by testsVictor Stinner2014-10-051-0/+1
|
* Issue 19572: More silently skipped tests explicitly skipped.Zachary Ware2013-12-081-1/+1
|\
| * Issue 19572: More silently skipped tests explicitly skipped.Zachary Ware2013-12-081-1/+1
| |
* | Issue #15204: Deprecated the 'U' mode in file-like objects.Serhiy Storchaka2013-11-231-1/+1
| |
* | Delete merge markersBrett Cannon2013-08-231-3/+1
| |
* | merge for issue #18755Brett Cannon2013-08-231-0/+9
|\ \ | |/
| * Issue #18755: Allow imp.load_*() loaders to have get_data() calledBrett Cannon2013-08-231-0/+7
| | | | | | | | multiple times.
| * issue #18698: ensure importlib.reload() returns the module out of sys.modules.Eric Snow2013-08-151-0/+17
| |
* | Issue #7732: try to fix test_bug7732's flakiness on Windows by executing it ↵Antoine Pitrou2013-08-191-5/+3
| | | | | | | | in a fresh temporary directory.
* | Issue #18706: Fix a test for issue #18681 so it no longer breaks ↵Serhiy Storchaka2013-08-111-2/+3
|\ \ | |/ | | | | test_codeccallbacks*.
| * Issue #18706: Fix a test for issue #18681 so it no longer breaks ↵Serhiy Storchaka2013-08-111-2/+3
| | | | | | | | test_codeccallbacks*.
* | #18681: merge with 3.3.Ezio Melotti2013-08-101-0/+9
|\ \ | |/
| * #18681: Fix a NameError in imp.reload() (noticed by Weizhao Li).Ezio Melotti2013-08-101-0/+9
| |
* | Issue #17177: The imp module is pending deprecation.Brett Cannon2013-06-161-1/+3
| | | | | | | | | | | | To make sure there is no issue with code that is both Python 2 and 3 compatible, there are no plans to remove the module any sooner than Python 4 (unless the community moves to Python 3 solidly before then).
* | Issue #7732: Move an imp.find_module test from test_import toBrett Cannon2013-06-071-0/+11
| | | | | | | | test_imp.
* | merge 3.3Benjamin Peterson2013-05-111-1/+2
|\ \ | |/
| * only close non-None filesBenjamin Peterson2013-05-111-1/+2
| |
| * Fix a test to not use an assertion for something that could beBrett Cannon2013-05-041-1/+2
| | | | | | | | legitimately false.
* | Change a test assertion to a conditional so the test will pass onBrett Cannon2013-05-041-2/+3
| | | | | | | | Windows.
* | add trailing newline to fileBrett Cannon2013-05-031-1/+1
| |
* | Move test_imp over to unittest.main()Brett Cannon2013-05-031-16/+6
| |