summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2008-01-11 07:03:05 (GMT)
committerChristian Heimes <christian@cheimes.de>2008-01-11 07:03:05 (GMT)
commit3540b508844353add804a1ed48e0a73469c385ca (patch)
tree31fad361d7f299011bcb98613b325d66d9d5635c
parent61ecb7768ff04e9918a461a5b4aa692580c9e113 (diff)
downloadcpython-3540b508844353add804a1ed48e0a73469c385ca.zip
cpython-3540b508844353add804a1ed48e0a73469c385ca.tar.gz
cpython-3540b508844353add804a1ed48e0a73469c385ca.tar.bz2
Good catch Neal!
I completely forgot about pyo files and the tests are usually not run with -O. The modified code checks for *.py?
-rw-r--r--Lib/test/test_import.py3
-rw-r--r--Python/import.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py
index d8f2d51..6eac67e 100644
--- a/Lib/test/test_import.py
+++ b/Lib/test/test_import.py
@@ -213,7 +213,8 @@ class ImportTest(unittest.TestCase):
os.remove(source)
del sys.modules[TESTFN]
mod = __import__(TESTFN)
- self.failUnless(mod.__file__.endswith('.pyc'))
+ ext = mod.__file__[-4:]
+ self.failUnless(ext in ('.pyc', '.pyo'), ext)
finally:
sys.path.pop(0)
remove_files(TESTFN)
diff --git a/Python/import.c b/Python/import.c
index f9d4246..cce854f 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -982,7 +982,8 @@ get_sourcefile(const char *file)
}
len = strlen(file);
- if (len > MAXPATHLEN || PyOS_stricmp(&file[len-4], ".pyc") != 0) {
+ /* match '*.py?' */
+ if (len > MAXPATHLEN || PyOS_strnicmp(&file[len-4], ".py", 3) != 0) {
return PyUnicode_DecodeFSDefault(file);
}