mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
- Issue #22966: Fix __pycache__ pyc file name clobber when pyc_compile is
asked to compile a source file containing multiple dots in the source file name.
This commit is contained in:
parent
b491e0521f
commit
2a413853f1
4 changed files with 3647 additions and 3626 deletions
|
@ -99,5 +99,21 @@ class PyCompileTests(unittest.TestCase):
|
|||
self.assertFalse(os.path.exists(
|
||||
importlib.util.cache_from_source(bad_coding)))
|
||||
|
||||
def test_double_dot_no_clobber(self):
|
||||
# http://bugs.python.org/issue22966
|
||||
# py_compile foo.bar.py -> __pycache__/foo.cpython-34.pyc
|
||||
weird_path = os.path.join(self.directory, 'foo.bar.py')
|
||||
cache_path = importlib.util.cache_from_source(weird_path)
|
||||
pyc_path = weird_path + 'c'
|
||||
self.assertEqual(
|
||||
'/'.join(cache_path.split('/')[-2:]),
|
||||
'__pycache__/foo.bar.cpython-34.pyc')
|
||||
with open(weird_path, 'w') as file:
|
||||
file.write('x = 123\n')
|
||||
py_compile.compile(weird_path)
|
||||
self.assertTrue(os.path.exists(cache_path))
|
||||
self.assertFalse(os.path.exists(pyc_path))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue