summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMeador Inge <meadori@gmail.com>2011-11-28 15:34:47 (GMT)
committerMeador Inge <meadori@gmail.com>2011-11-28 15:34:47 (GMT)
commit31b798d3c8592c84d36c7c9134a0bcbcb39dd92e (patch)
tree87bd63049b10be3c646131d626c417736caf2cae /Lib
parentd1b097f8844d5e711c55874baba45b792cf46055 (diff)
parent22b9b379159f953ad4805980644414354030624f (diff)
downloadcpython-31b798d3c8592c84d36c7c9134a0bcbcb39dd92e.zip
cpython-31b798d3c8592c84d36c7c9134a0bcbcb39dd92e.tar.gz
cpython-31b798d3c8592c84d36c7c9134a0bcbcb39dd92e.tar.bz2
Issue #12618: py_compile cannot create files in current directory
Initial patch by Sjoerd de Vries.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/py_compile.py4
-rw-r--r--Lib/test/test_py_compile.py9
2 files changed, 12 insertions, 1 deletions
diff --git a/Lib/py_compile.py b/Lib/py_compile.py
index e0f98cb..5adb70a 100644
--- a/Lib/py_compile.py
+++ b/Lib/py_compile.py
@@ -130,7 +130,9 @@ def compile(file, cfile=None, dfile=None, doraise=False, optimize=-1):
else:
cfile = imp.cache_from_source(file)
try:
- os.makedirs(os.path.dirname(cfile))
+ dirname = os.path.dirname(cfile)
+ if dirname:
+ os.makedirs(dirname)
except OSError as error:
if error.errno != errno.EEXIST:
raise
diff --git a/Lib/test/test_py_compile.py b/Lib/test/test_py_compile.py
index 8ad0897..f3c1a6a 100644
--- a/Lib/test/test_py_compile.py
+++ b/Lib/test/test_py_compile.py
@@ -39,6 +39,15 @@ class PyCompileTests(unittest.TestCase):
py_compile.compile(self.source_path)
self.assertTrue(os.path.exists(self.cache_path))
+ def test_cwd(self):
+ cwd = os.getcwd()
+ os.chdir(self.directory)
+ py_compile.compile(os.path.basename(self.source_path),
+ os.path.basename(self.pyc_path))
+ os.chdir(cwd)
+ self.assertTrue(os.path.exists(self.pyc_path))
+ self.assertFalse(os.path.exists(self.cache_path))
+
def test_relative_path(self):
py_compile.compile(os.path.relpath(self.source_path),
os.path.relpath(self.pyc_path))