On 5/26/20 4:47 PM, Pierre-Marie de Rodat wrote:
Currently, running gcc-changelog's unit tests may clutter the output
with tons of warnings such as:

     .../contrib/gcc-changelog/git_email.py:40: ResourceWarning: unclosed
     file <_io.TextIOWrapper name='/tmp/tmpt5okd4qp.patch' mode='r'
     encoding='UTF-8'>
       lines = open(self.filename).read().splitlines()
     ResourceWarning: Enable tracemalloc to get the object allocation
     traceback

This commit fixes these leaks, which restores a clean testsuite output.

Hello.

Oh, that's new for me. I've never seen the warning.

Please install the patch.

Martin


contrib/

        * gcc-changelog/git_email.py: Close file objects after use.
        * gcc-changelog/test_email.py: Likewise.
---
  contrib/gcc-changelog/git_email.py          | 3 ++-
  contrib/gcc-changelog/git_update_version.py | 6 ++++--
  contrib/gcc-changelog/test_email.py         | 3 ++-
  3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/contrib/gcc-changelog/git_email.py 
b/contrib/gcc-changelog/git_email.py
index e1d6b70e80c..8c9df293a66 100755
--- a/contrib/gcc-changelog/git_email.py
+++ b/contrib/gcc-changelog/git_email.py
@@ -37,7 +37,8 @@ class GitEmail(GitCommit):
          date = None
          author = None
- lines = open(self.filename).read().splitlines()
+        with open(self.filename, 'r') as f:
+            lines = f.read().splitlines()
          lines = list(takewhile(lambda line: line != '---', lines))
          for line in lines:
              if line.startswith(DATE_PREFIX):
diff --git a/contrib/gcc-changelog/git_update_version.py 
b/contrib/gcc-changelog/git_update_version.py
index 3dcc5625eda..6b6ccf68a5e 100755
--- a/contrib/gcc-changelog/git_update_version.py
+++ b/contrib/gcc-changelog/git_update_version.py
@@ -28,7 +28,8 @@ current_timestamp = 
datetime.datetime.now().strftime('%Y%m%d\n')
def read_timestamp(path):
-    return open(path).read()
+    with open(path) as f:
+        return f.read()
def prepend_to_changelog_files(repo, folder, git_commit, add_to_git):
@@ -40,7 +41,8 @@ def prepend_to_changelog_files(repo, folder, git_commit, 
add_to_git):
          full_path = os.path.join(folder, entry, 'ChangeLog')
          print('writting to %s' % full_path)
          if os.path.exists(full_path):
-            content = open(full_path).read()
+            with open(full_path) as f:
+                content = f.read()
          else:
              content = ''
          with open(full_path, 'w+') as f:
diff --git a/contrib/gcc-changelog/test_email.py 
b/contrib/gcc-changelog/test_email.py
index bf028a3d40a..1379502e755 100755
--- a/contrib/gcc-changelog/test_email.py
+++ b/contrib/gcc-changelog/test_email.py
@@ -33,7 +33,8 @@ class TestGccChangelog(unittest.TestCase):
filename = None
          patch_lines = []
-        lines = open(os.path.join(script_path, 'test_patches.txt')).read()
+        with open(os.path.join(script_path, 'test_patches.txt')) as f:
+            lines = f.read()
          for line in lines.split('\n'):
              if line.startswith('==='):
                  if patch_lines:


Reply via email to