From fe4b34cc4b3d4c91497460d64c8ed1fe7a983689 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marc-Andr=C3=A9=20Lemburg?= Date: Sun, 19 Feb 2006 15:22:22 +0000 Subject: [PATCH] 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. --- Lib/encodings/__init__.py | 2 +- Lib/test/test_charmapcodec.py | 15 +++++++++++++-- Misc/NEWS | 6 ++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Lib/encodings/__init__.py b/Lib/encodings/__init__.py index 8a50ac13e8..01463bc34c 100644 --- a/Lib/encodings/__init__.py +++ b/Lib/encodings/__init__.py @@ -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 diff --git a/Lib/test/test_charmapcodec.py b/Lib/test/test_charmapcodec.py index 79d82c1460..2866984005 100644 --- a/Lib/test/test_charmapcodec.py +++ b/Lib/test/test_charmapcodec.py @@ -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): diff --git a/Misc/NEWS b/Misc/NEWS index 078f7026f3..32f6047385 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -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. -- 2.40.0