Commit Graph

185 Commits

Author SHA1 Message Date
Antoine Pitrou 33d15f7c85 Port import fixes from 2.7. 2012-01-25 18:01:45 +01:00
Antoine Pitrou 157c1263a2 Port remaining test fixes, and fix test_importlib too. 2012-01-25 03:01:34 +01:00
Antoine Pitrou dd21f68963 Port remaining test fixes, and fix test_importlib too. 2012-01-25 03:00:57 +01:00
Antoine Pitrou abaf89b2be Issue #11235: Fix OverflowError when trying to import a source file whose modification time doesn't fit in a 32-bit timestamp. 2012-01-24 17:45:50 +01:00
Antoine Pitrou 2be60afb7e Issue #11235: Fix OverflowError when trying to import a source file whose modification time doesn't fit in a 32-bit timestamp. 2012-01-24 17:44:06 +01:00
Benjamin Peterson 6f5b6d7e8f kill useless import added by 87331661042b 2012-01-15 22:43:10 -05:00
Antoine Pitrou 7c9907e565 Fix no-op tests in importlib. 2011-12-30 21:25:15 +01:00
Antoine Pitrou 5136ac0ca2 Issue #13645: pyc files now contain the size of the corresponding source
code, to avoid timestamp collisions (especially on filesystems with a low
timestamp resolution) when checking for freshness of the bytecode.
2012-01-13 18:52:16 +01:00
Antoine Pitrou 5e8767c764 Fix no-op tests in importlib. 2011-12-30 21:26:08 +01:00
Meador Inge 96ff0840b6 Issue #13593: updating the importlib utility decorators for __qualname__. 2011-12-14 22:53:13 -06:00
Meador Inge d7afeeeb8d Issue #13591: import_module potentially imports a module twice. 2011-12-14 22:27:28 -06:00
Meador Inge 416f12ddb3 Issue #13591: import_module potentially imports a module twice. 2011-12-14 22:23:46 -06:00
Florent Xicluna 67317750af Issue #13248: turn 3.2's PendingDeprecationWarning into 3.3's DeprecationWarning (cgi, importlib, nntplib, smtpd). 2011-12-10 11:07:42 +01:00
Vinay Sajip 65897a386e Closes #12291 for 3.3 - merged fix from 3.2. 2011-07-02 17:16:02 +01:00
Vinay Sajip 5bdae3bb7c Closes #12291: Fixed bug which was found when doing multiple loads from one stream. 2011-07-02 16:42:47 +01:00
Éric Araujo ef3062f7af Kill dead code in importlib.test.__main__ (#12019, reviewed by Brett Cannon) 2011-06-07 17:58:50 +02:00
Victor Stinner 82f46144cc (Merge 3.2) Issue #11614: Fix importlib tests for the new __hello__ module 2011-05-16 17:00:41 +02:00
Victor Stinner 45323a890a (Merge 3.1) Issue #11614: Fix importlib tests for the new __hello__ module 2011-05-16 16:59:49 +02:00
Victor Stinner 272e24356e Issue #11614: Fix importlib tests for the new __hello__ module 2011-05-16 16:57:18 +02:00
Brett Cannon 5d43cff623 Remove a stale comment. 2011-03-23 18:12:24 -07:00
Ezio Melotti 19f2aeba67 Merged revisions 86596 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r86596 | ezio.melotti | 2010-11-20 21:04:17 +0200 (Sat, 20 Nov 2010) | 1 line

  #9424: Replace deprecated assert* methods in the Python test suite.
........
2010-11-21 01:30:29 +00:00
Ezio Melotti b3aedd4862 #9424: Replace deprecated assert* methods in the Python test suite. 2010-11-20 19:04:17 +00:00
Brett Cannon 186335bd5c Make sure that no __pycache__ directory is needlessly left behind when testing
imports with an empty string in sys.path.
2010-08-22 22:11:06 +00:00
Brett Cannon 5db0c94072 Add importlib benchmarks which try to be "realistic" by importing the decimal
module which is the largest module in the stdlib.
2010-07-22 07:40:56 +00:00
Brett Cannon cbe1a4e28f Add comma grouping to max result so it's easier to read. 2010-07-16 19:26:23 +00:00
Brett Cannon 3b0a19eaba Add benchmarks for importing just source w/o writing bytecode, importing source
while writing bytecode, and importing bytecode with source existing (don't care
about sourceless imports).
2010-07-16 19:04:29 +00:00
Brett Cannon 7b9bcb8411 Touch up comments and code along with outputting what the unit of measure is. 2010-07-15 06:24:04 +00:00
Brett Cannon 418182e18b Make importlib.abc.SourceLoader the primary mechanism for importlib.
This required moving the class from importlib/abc.py into
importlib/_bootstrap.py and jiggering some code to work better with the class.
This included changing how the file finder worked to better meet import
semantics. This also led to fixing importlib to handle the empty string from
sys.path as import currently does (and making me wish we didn't support that
instead just required people to insert '.' instead to represent cwd).

It also required making the new set_data abstractmethod create
any needed subdirectories implicitly thanks to __pycache__ (it was either this
or grow the SourceLoader ABC to gain an 'exists' method and either a mkdir
method or have set_data with no data arg mean to create a directory).

Lastly, as an optimization the file loaders cache the file path where the
finder found something to use for loading (this is thanks to having a
sourceless loader separate from the source loader to simplify the code and
cut out stat calls).
Unfortunately test_runpy assumed a loader would always work for a module, even
if you changed from underneath it what it was expected to work with. By simply
dropping the previous loader in test_runpy so the proper loader can be returned
by the finder fixed the failure.

At this point importlib deviates from import on two points:

1. The exception raised when trying to import a file is different (import does
an explicit file check to print a special message, importlib just says the path
cannot be imported as if it was just some module name).

2. the co_filename on a code object is not being set to where bytecode was
actually loaded from instead of where the marshalled code object originally
came from (a solution for this has already been agreed upon on python-dev but has
not been implemented yet; issue8611).
2010-07-03 22:32:41 +00:00
Brett Cannon d71bed3d76 Make importlib.abc.SourceLoader the primary mechanism for importlib.
This required moving the class from importlib/abc.py into
importlib/_bootstrap.py and jiggering some code to work better with the class.
This included changing how the file finder worked to better meet import
semantics. This also led to fixing importlib to handle the empty string from
sys.path as import currently does (and making me wish we didn't support that
instead just required people to insert '.' instead to represent cwd).

It also required making the new set_data abstractmethod create
any needed subdirectories implicitly thanks to __pycache__ (it was either this
or grow the SourceLoader ABC to gain an 'exists' method and either a mkdir
method or have set_data with no data arg mean to create a directory).

Lastly, as an optimization the file loaders cache the file path where the
finder found something to use for loading (this is thanks to having a
sourceless loader separate from the source loader to simplify the code and
cut out stat calls).
Unfortunately test_runpy assumed a loader would always work for a module, even
if you changed from underneath it what it was expected to work with. By simply
dropping the previous loader in test_runpy so the proper loader can be returned
by the finder fixed the failure.

At this point importlib deviates from import on two points:

1. The exception raised when trying to import a file is different (import does
an explicit file check to print a special message, importlib just says the path
cannot be imported as if it was just some module name).

2. the co_filename on a code object is not being set to where bytecode was
actually loaded from instead of where the marshalled code object originally
came from (a solution for this has already been agreed upon on python-dev but has
not been implemented yet; issue8611).
2010-07-03 22:18:47 +00:00
Brett Cannon 2cf1585499 Fix a spelling mistake in a comment. 2010-07-03 22:03:16 +00:00
Brett Cannon 61b14251d3 Make importlib.abc.SourceLoader the primary mechanism for importlib.
This required moving the class from importlib/abc.py into
importlib/_bootstrap.py and jiggering some code to work better with the class.
This included changing how the file finder worked to better meet import
semantics. This also led to fixing importlib to handle the empty string from
sys.path as import currently does (and making me wish we didn't support that
instead just required people to insert '.' instead to represent cwd).

It also required making the new set_data abstractmethod create
any needed subdirectories implicitly thanks to __pycache__ (it was either this
or grow the SourceLoader ABC to gain an 'exists' method and either a mkdir
method or have set_data with no data arg mean to create a directory).

Lastly, as an optimization the file loaders cache the file path where the
finder found something to use for loading (this is thanks to having a
sourceless loader separate from the source loader to simplify the code and
cut out stat calls).
Unfortunately test_runpy assumed a loader would always work for a module, even
if you changed from underneath it what it was expected to work with. By simply
dropping the previous loader in test_runpy so the proper loader can be returned
by the finder fixed the failure.

At this point importlib deviates from import on two points:

1. The exception raised when trying to import a file is different (import does
an explicit file check to print a special message, importlib just says the path
cannot be imported as if it was just some module name).

2. the co_filename on a code object is not being set to where bytecode was
actually loaded from instead of where the marshalled code object originally
came from (a solution for this has already been agreed upon on python-dev but has
not been implemented yet; issue8611).
2010-07-03 21:48:25 +00:00
Brett Cannon b7183d8c1f Add an inheritance test for importlib.abc.SourceLoader. 2010-06-28 05:46:25 +00:00
Brett Cannon 0cf9e6a621 Move importlib.abc.SourceLoader to _bootstrap.
Required updating code relying on other modules to switch to _bootstrap's
unique module requirements. This led to the realization that
get_code was being too liberal in its exception catching when calling set_data
by blindly grabbing IOError. Shifted the responsibility of safely ignoring
writes to a read-only path to set_data.

Importlib is still not relying on SourceLoader yet; requires creating a
SourcelessLoader and updating the source finder.
2010-06-28 04:57:24 +00:00
Benjamin Peterson 2215c14f03 fix test with more obviously incorrect bytecode 2010-06-28 00:24:13 +00:00
Brett Cannon f23e374441 Implement importlib.abc.SourceLoader and deprecate PyLoader and PyPycLoader.
SourceLoader is a simplification of both PyLoader and PyPycLoader. If one only
wants to use source, then they need to only implement get_data and
get_filename. To also use bytecode -- sourceless loading is not supported --
then two abstract methods -- path_mtime and set_data -- need to be implemented.
Compared to PyLoader and PyPycLoader, there are less abstract methods
introduced and bytecode files become an optimization controlled by the ABC and
hidden from the user (this need came about as PEP 3147 showed that not treating
bytecode as an optimization can cause problems for compatibility).

PyLoader is deprecated in favor of SourceLoader. To be compatible from Python
3.1 onwards, a subclass need only use simple methods for source_path and
is_package. Otherwise conditional subclassing based on whether Python 3.1 or
Python 3.2 is being is the only change. The documentation and docstring for
PyLoader explain what is exactly needed.

PyPycLoader is deprecated also in favor of SourceLoader. Because PEP 3147
shifted bytecode path details so much, there is no foolproof way to provide
backwards-compatibility with SourceLoader. Because of this the class is simply
deprecated and users should move to SourceLoader (and optionally PyLoader for
Python 3.1). This does lead to a loss of support for sourceless loading
unfortunately.

At some point before Python 3.2 is released, SourceLoader will be moved over to
importlib._bootstrap so that the core code of importlib relies on the new code
instead of the old PyPycLoader code. This commit is being done now so that
there is no issue in having the API in Python 3.1a1.
2010-06-27 23:57:46 +00:00
Brett Cannon c56b094bab Move over to assertIs. 2010-06-21 02:49:35 +00:00
Barry Warsaw 04b5684d00 Repair test failure. Bug 8727. 2010-05-18 14:15:20 +00:00
Barry Warsaw 50ad588c33 Remove unnecessary XXX 2010-04-17 00:31:11 +00:00
Barry Warsaw 28a691b7fd PEP 3147 2010-04-17 00:19:56 +00:00
Brett Cannon 39440b14cd Merged revisions 78242 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r78242 | brett.cannon | 2010-02-19 11:01:06 -0500 (Fri, 19 Feb 2010) | 5 lines

  Importlib was not matching import's handling of .pyc files where it had less
  then 8 bytes total in the file.

  Fixes issues 7361 & 7875.
........
2010-02-19 16:05:28 +00:00
Brett Cannon 9b3e15fbc4 Importlib was not matching import's handling of .pyc files where it had less
then 8 bytes total in the file.

Fixes issues 7361 & 7875.
2010-02-19 16:01:06 +00:00
Brett Cannon 3d26b95ca7 Merged revisions 76146 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r76146 | brett.cannon | 2009-11-07 15:55:05 -0800 (Sat, 07 Nov 2009) | 6 lines

  When trying to write new bytecode, importlib was not catching the IOError
  thrown if the file happened to be read-only to keep the failure silent.

  Fixes issue #7187. Thanks, Dave Malcolm for the report and analysis of the
  problem.
........
2009-11-07 23:57:20 +00:00
Brett Cannon e52c919d67 When trying to write new bytecode, importlib was not catching the IOError
thrown if the file happened to be read-only to keep the failure silent.

Fixes issue #7187. Thanks, Dave Malcolm for the report and analysis of the
problem.
2009-11-07 23:55:05 +00:00
Brett Cannon 142d236442 Merged revisions 76113-76114 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r76113 | brett.cannon | 2009-11-04 17:17:22 -0800 (Wed, 04 Nov 2009) | 3 lines

  importlib.test.source.util referenced variables in the 'finally' part of a
  try/finally which may not have been set.
........
  r76114 | brett.cannon | 2009-11-04 17:26:57 -0800 (Wed, 04 Nov 2009) | 6 lines

  Use tempfile.mkdtemp() instead of tempfile.tempdir for where importlib places
  source files for tests. Allows for concurrent execution of the tests by
  preventing various executions from trampling each other.

  Closes issue #7248.
........
2009-11-05 01:34:30 +00:00
Brett Cannon cfed029c42 Use tempfile.mkdtemp() instead of tempfile.tempdir for where importlib places
source files for tests. Allows for concurrent execution of the tests by
preventing various executions from trampling each other.

Closes issue #7248.
2009-11-05 01:26:57 +00:00
Brett Cannon 0ae4511624 importlib.test.source.util referenced variables in the 'finally' part of a
try/finally which may not have been set.
2009-11-05 01:17:22 +00:00
Brett Cannon 23cf5743ae Rework importlib benchmarks so that they measure number of executions within a
second instead of some fixed number.

Keeps benchmark faster by putting a cap on total execution time. Before a run
using importlib took longer by some factor, but now it takes roughly the
same amount of time as using the built-in __import__.
2009-09-03 20:45:21 +00:00
Brett Cannon d95863f6f3 Clarify why test_import is failing under importlib. 2009-08-30 23:41:40 +00:00
Brett Cannon 1c1dcbfd5d Trying to import a submodule from another module and not a package was raising
AttributeError in importlib when it should be an ImportError.

Found when running importlib against test_runpy.
2009-08-30 20:22:21 +00:00
Brett Cannon 82a23fe392 test_pep3120 is no longer a problem for importlib as the test was tweaked. 2009-08-30 20:08:15 +00:00
Brett Cannon de4ebfe559 When the globals argument to importlib.__import__() contained any value for
__package__, it was used. This was incorrect since it could be set to None to
represent the fact that a proper value was unknown. Now None will trigger the
calculation for __package__.

Discovered when running importlib against test_importhooks.
2009-08-30 19:53:48 +00:00
Brett Cannon ce7d4cbc3b Turn on verbose2 for importlib.test.regrtest so as to see failures when they occur. 2009-08-30 19:44:32 +00:00
Brett Cannon 6afbaef2fd Raise TypeError if the name given to importlib.__import__() lacks an rpartition
attribute. Was throwing AttributeError before. Discovered when running
test_builtin against importlib.

This exception change is specific to importlib.__import__() and does not apply to
import_module() as it is being done for compatibility reasons only.
2009-08-30 19:08:58 +00:00
Brett Cannon 44b28a9f32 Fix the importlib_only test decorator to work again; don't capture the flag variable as it might change later. 2009-08-30 18:59:21 +00:00
Brett Cannon a6503606f9 Use the public API, not a private one. 2009-08-30 18:40:23 +00:00
Brett Cannon 9e0e1a63c8 Allow importlib.__import__ to accept any iterable for fromlist. Discovered when
running importlib against test___all__.
2009-08-30 18:28:46 +00:00
Brett Cannon 12c3fc9343 Provide module docstrings for the two main test drivers in importlib that
explain what they are for and how to use command-line arguments to tweak
semantics.
2009-08-30 08:39:57 +00:00
Brett Cannon 6cc8310ded Tweak importlib.test.regrtest to only specify the implicit tests to exclude
when running entire test suite. Allows normal command-line arguments normally
given to test.regrtest to work (e.g. specifying a single test).
2009-08-30 08:30:35 +00:00
Brett Cannon 8a1a59f0ec Merged revisions 74584 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r74584 | brett.cannon | 2009-08-29 20:47:36 -0700 (Sat, 29 Aug 2009) | 3 lines

  Have importlib raise ImportError if None is found in sys.modules. This matches
  current import semantics.
........
2009-08-30 04:29:47 +00:00
Brett Cannon 4d75fc1ce9 Have importlib raise ImportError if None is found in sys.modules. This matches
current import semantics.
2009-08-30 03:47:36 +00:00
Brett Cannon 5e129dbc16 Add a test file to importlib that runs regrtest using importlib.__import__.
The file must be run using runpy. Certain tests are currently excluded from
being run as they have known failures based on golden value checks that fail
for various reasons (typically because __loader__ is not expected to be set on
modules). Running the tests with this file does discover some incompatibilites
in importlib that will be fixed in the near future (as noted currently in the
docstring).
2009-08-27 23:52:35 +00:00
Brett Cannon 5c26eaad23 Add support for a --builtin argument to importlib.test to trigger running
import-specific tests with __import__ instead of importlib.
2009-08-27 23:49:56 +00:00
Brett Cannon 2153dc001f Move over to using assertRaises as a context manager for importlib tests.
Obviously one shouldn't do whole sale conversions like this, but I was already
going through the test code and I was bored at the airport.
2009-08-27 23:49:21 +00:00
Brett Cannon c5951fc996 Make __package__ setting tests specific to importlib. Also move to assertRaises context manager. 2009-08-27 23:46:38 +00:00
Brett Cannon 6d2bb7f5aa Move a test-skipping decorator over to unittest.skipIf. 2009-08-27 23:44:18 +00:00
Georg Brandl ab91fdef1f Merged revisions 73715 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k

........
  r73715 | benjamin.peterson | 2009-07-01 01:06:06 +0200 (Mi, 01 Jul 2009) | 1 line

  convert old fail* assertions to assert*
........
2009-08-13 08:51:18 +00:00
Brett Cannon 6919427e94 Implement the PEP 302 protocol for get_filename() as
importlib.abc.ExecutionLoader. PyLoader now inherits from this ABC instead of
InspectLoader directly. Both PyLoader and PyPycLoader provide concrete
implementations of get_filename in terms of source_path and bytecode_path.
2009-07-20 04:23:48 +00:00
Brett Cannon 2e3155e2fe Merged revisions 74107 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r74107 | brett.cannon | 2009-07-19 20:19:18 -0700 (Sun, 19 Jul 2009) | 8 lines

  Importlib's documentation said that importlib.abc.PyLoader inherited from
  importlib.abc.ResourceLoader, when in fact it did not. Fixed the ABC to inherit
  as documented.

  This does in introduce an backwards-incompatiblity as the code in PyLoader
  already required the single method ResourceLoader defined as an abstract
  method.
........
2009-07-20 03:22:43 +00:00
Brett Cannon 64ef00fa60 Importlib's documentation said that importlib.abc.PyLoader inherited from
importlib.abc.ResourceLoader, when in fact it did not. Fixed the ABC to inherit
as documented.

This doesn't introduce an backwards-incompatiblity as the code in PyLoader
already required the single method ResourceLoader defined as an abstract
method.
2009-07-20 03:19:18 +00:00
Brett Cannon 4dc3193973 Remove custom test-skipping code in importlib tests for unittest code. 2009-07-20 01:05:40 +00:00
Brett Cannon 10e35b30fb Backport of r74103. 2009-07-20 00:19:49 +00:00
Brett Cannon 3c2738488a Some tests in importlib.test.source.test_abc_loader were testing what happens
when a loader is given missing or bad code object bytecode. Unfortunately an
exception related to source paths was masking what the proper exception to test
should be. Making the test explicitly set the environment fixed the test.

The code being test was not affected.
2009-07-20 00:14:29 +00:00
Brett Cannon 0a49c58fb0 Update importlib.test.source.test_abc_loader to new features added in Python 3.1. 2009-07-19 23:43:45 +00:00
Brett Cannon b49c70c7d3 Importlib was using custom code to discover all test modules in importlib.test.
This has now been removed in favor of using unittest's test discovery code in
TestLoader.discover().
2009-07-15 04:08:33 +00:00
R. David Murray 9b2611ee40 Remove unused import for function that no longer exists. 2009-07-01 02:51:00 +00:00
Benjamin Peterson c9c0f201fe convert old fail* assertions to assert* 2009-06-30 23:06:06 +00:00
Raymond Hettinger 554290d920 Fixup/simplify another nested context manager. 2009-06-12 11:25:59 +00:00
Brett Cannon 1262e7c746 Tests for case-senstivity were not being skipped for darwin when installed on a
case-sensitive filesystems -- which is not the default case. Along the way also
fixed the skipping of tests when sys.dont_write_bytecode is true.

Closes issue #5442 again.
2009-05-11 01:47:11 +00:00
Benjamin Peterson 3c33b833dd fix name again 2009-04-04 01:21:56 +00:00
Benjamin Peterson 3e0c9176fe fix name 2009-04-04 00:46:15 +00:00
Benjamin Peterson 309633db08 fix naming 2009-04-03 23:47:26 +00:00
Benjamin Peterson 8d55a9e8dd os.path.listdir -> os.listdir 2009-04-03 22:23:43 +00:00
Brett Cannon 5561982b64 importlib.test.source.test_abc_loader was making a bad assumption that all file
paths used '/' as a path separator.

Fixes issue #5646.
2009-04-02 17:54:43 +00:00
Brett Cannon f86213f6f2 Make a test in importlib have a more robust test value. 2009-04-02 15:35:09 +00:00
Brett Cannon 978259e9b3 Give a more informative message on an importlib test upon failure. 2009-04-02 15:32:07 +00:00
Brett Cannon a3d056ed95 Check that on a platform that is expected to have a case-insensitive filesystem
that is in fact the case.

Closes issue #5442.
2009-04-02 05:17:54 +00:00
Brett Cannon 8593a75688 Fix importlib.machinery.PathFinder.find_module() to essentially skip over None
entries in sys.path_importer_cache. While this differs from semantics in how
__import__ works, it prevents any implicit semantics from taking hold with
users.
2009-03-30 19:57:15 +00:00
Brett Cannon 6ae7a7d13d Add simple tests for __import__ for future optimizations to importlib. 2009-03-30 15:53:01 +00:00
Brett Cannon 8d11013169 Implement InspectLoader for FrozenImporter. 2009-03-15 02:20:16 +00:00
Brett Cannon a113ac58be Implement InspectLoader for BuiltinImporter. 2009-03-15 01:41:33 +00:00
Brett Cannon 7aa21f75c1 A few more docstring/API cleanups for importlib. 2009-03-15 00:53:05 +00:00
Brett Cannon f87e04d339 Finish properly hiding importlib implementation code. 2009-03-12 22:47:53 +00:00
Brett Cannon 2cf03a8204 Implement importlib.util.set_loader: a decorator to automatically set
__loader__ on modules.
2009-03-10 05:17:37 +00:00
Brett Cannon d43b30b046 Implement get_source for importlib.abc.PyLoader using source_path and get_data. 2009-03-10 03:29:23 +00:00
Brett Cannon 2a922ed6ad Introduce importlib.abc. The module contains various ABCs related to imports
(mostly stuff specified by PEP 302). There are two ABCs, PyLoader and
PyPycLoader, which help with implementing source and source/bytecode loaders by
implementing load_module in terms of other methods. This removes a lot of
gritty details loaders typically have to worry about.
2009-03-09 03:35:50 +00:00
Brett Cannon ba3fcf17c8 Remove a dead XXX comment. 2009-03-09 01:58:13 +00:00
Brett Cannon f2b55fb5ee Make importlib.test.source.util.write_bytecode reset sys.dont_write_bytecode. 2009-03-09 00:02:01 +00:00
Brett Cannon 79925fdbfe Skip case-sensitivity tests for extension modules if _testcapi cannot be found. 2009-03-08 20:50:32 +00:00
Brett Cannon 435aad878c Rename importlib.util.set___package__ to set_package. 2009-03-04 16:07:00 +00:00
Brett Cannon b5f03c6779 Add a test for importlib.import_module. 2009-03-04 01:02:54 +00:00