Fix the encodings package codec search function to only search

inside its own package. Fixes problem reported in patch #1433198.

Add codec search function for codec test codec.
This commit is contained in:
Marc-André Lemburg 2006-02-19 15:22:22 +00:00
parent c3e950cbf3
commit fe4b34cc4b
3 changed files with 20 additions and 3 deletions

View File

@ -91,7 +91,7 @@ def search_function(encoding):
if not modname:
continue
try:
mod = __import__(modname,
mod = __import__('encodings.' + modname,
globals(), locals(), _import_tail)
except ImportError:
pass

View File

@ -11,8 +11,19 @@ Written by Marc-Andre Lemburg (mal@lemburg.com).
import test.test_support, unittest
# test codec's full path name (see test/testcodec.py)
codecname = 'test.testcodec'
import codecs
# Register a search function which knows about our codec
def codec_search_function(encoding):
if encoding == 'testcodec':
from test import testcodec
return tuple(testcodec.getregentry())
return None
codecs.register(codec_search_function)
# test codec's name (see test/testcodec.py)
codecname = 'testcodec'
class CharmapCodecTest(unittest.TestCase):
def test_constructorx(self):

View File

@ -12,6 +12,12 @@ What's New in Python 2.5 alpha 1?
Core and builtins
-----------------
- Fix the encodings package codec search function to only search
inside its own package. Fixes problem reported in patch #1433198.
Note: Codec packages should implement and register their own
codec search function. PEP 100 has the details.
- PEP 353: Using ssize_t as the index type.
- Patch #1400181, fix unicode string formatting to not use the locale.