[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [stem/master] Clear orphaned pyc files for python3
commit b8411f0dafab408f42f2b00ab6622fa64c6d120d
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
Date: Mon Mar 2 09:23:07 2015 -0800
Clear orphaned pyc files for python3
Task to ensure we don't test against bytecode for deleted or renamed files.
Initial patch thanks to dumindux.
https://trac.torproject.org/projects/tor/ticket/14628
---
stem/util/test_tools.py | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/stem/util/test_tools.py b/stem/util/test_tools.py
index 2e4dd0b..c8fe76a 100644
--- a/stem/util/test_tools.py
+++ b/stem/util/test_tools.py
@@ -53,17 +53,22 @@ def clean_orphaned_pyc(paths):
for path in paths:
for pyc_path in stem.util.system.files_with_suffix(path, '.pyc'):
+ py_path = pyc_path[:-1]
+
# If we're running python 3 then the *.pyc files are no longer bundled
# with the *.py. Rather, they're in a __pycache__ directory.
- # TODO: At the moment there's no point in checking for orphaned bytecode
- # with python 3 because it's an exported copy of the python 2 codebase,
- # so skipping. However, we might want to address this for other callers.
+ pycache = '%s__pycache__%s' % (os.path.sep, os.path.sep)
+
+ if pycache in pyc_path:
+ directory, pycache_filename = pyc_path.split(pycache, 1)
+
+ if not pycache_filename.endswith('.pyc'):
+ continue # should look like 'test_tools.cpython-32.pyc'
- if '__pycache__' in pyc_path:
- continue
+ py_path = os.path.join(directory, pycache_filename.split('.')[0] + '.py')
- if not os.path.exists(pyc_path[:-1]):
+ if not os.path.exists(py_path):
orphaned_pyc.append(pyc_path)
os.remove(pyc_path)
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits