Merge ~cjwatson/txpkgupload:py3-close-log-file into txpkgupload:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: bbf3c6f71565a6f9a085347e3d6dc6224f5ad51c
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/txpkgupload:py3-close-log-file
Merge into: txpkgupload:master
Diff against target: 54 lines (+11/-3)
2 files modified
src/txpkgupload/services.py (+10/-3)
src/txpkgupload/tests/test_plugin.py (+1/-0)
Reviewer Review Type Date Requested Status
Thiago F. Pappacena (community) Approve
Review via email: mp+393262@code.launchpad.net

Commit message

Silence ResourceWarnings due to an open log file

Description of the change

We need to explicitly close the service's log file if we opened one.

To post a comment you must log in.
Revision history for this message
Thiago F. Pappacena (pappacena) :
review: Approve
Revision history for this message
Colin Watson (cjwatson) :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/txpkgupload/services.py b/src/txpkgupload/services.py
index 89e9e4d..613ff30 100644
--- a/src/txpkgupload/services.py
+++ b/src/txpkgupload/services.py
@@ -63,10 +63,11 @@ class PkgUploadServices(MultiService):
63 """Container for package upload services."""63 """Container for package upload services."""
6464
65 def __init__(self, oops_dir, oops_reporter, server_argv=None):65 def __init__(self, oops_dir, oops_reporter, server_argv=None):
66 MultiService.__init__(self)66 super(PkgUploadServices, self).__init__()
67 self.oops_dir = oops_dir67 self.oops_dir = oops_dir
68 self.oops_reporter = oops_reporter68 self.oops_reporter = oops_reporter
69 self.server_argv = server_argv69 self.server_argv = server_argv
70 self._log_file = None
7071
71 def _getLogObserver(self):72 def _getLogObserver(self):
72 # We unfortunately have to clone-and-hack part of73 # We unfortunately have to clone-and-hack part of
@@ -88,7 +89,7 @@ class PkgUploadServices(MultiService):
88 else:89 else:
89 if not logfilename:90 if not logfilename:
90 logfilename = "txpkgupload.log"91 logfilename = "txpkgupload.log"
91 logFile = LogFile.fromFullPath(92 self._log_file = logFile = LogFile.fromFullPath(
92 logfilename, rotateLength=None, defaultMode=0o644)93 logfilename, rotateLength=None, defaultMode=0o644)
93 # Override if signal is set to None or SIG_DFL (0)94 # Override if signal is set to None or SIG_DFL (0)
94 if not signal.getsignal(signal.SIGUSR1):95 if not signal.getsignal(signal.SIGUSR1):
@@ -110,8 +111,14 @@ class PkgUploadServices(MultiService):
110 return oops_observer.emit111 return oops_observer.emit
111112
112 def setServiceParent(self, parent):113 def setServiceParent(self, parent):
113 MultiService.setServiceParent(self, parent)114 super(PkgUploadServices, self).setServiceParent(parent)
114 if isinstance(parent, Componentized):115 if isinstance(parent, Componentized):
115 # Customise the application's logging. We don't get much of an116 # Customise the application's logging. We don't get much of an
116 # opportunity to do this otherwise.117 # opportunity to do this otherwise.
117 parent.setComponent(log.ILogObserver, self._getLogObserver())118 parent.setComponent(log.ILogObserver, self._getLogObserver())
119
120 def disownServiceParent(self):
121 if self._log_file is not None:
122 self._log_file.close()
123 self._log_file = None
124 super(PkgUploadServices, self).disownServiceParent()
diff --git a/src/txpkgupload/tests/test_plugin.py b/src/txpkgupload/tests/test_plugin.py
index 610a27e..183de40 100644
--- a/src/txpkgupload/tests/test_plugin.py
+++ b/src/txpkgupload/tests/test_plugin.py
@@ -230,6 +230,7 @@ class PkgUploadFixture(DeferringFixture):
230 # runner would, and start the service.230 # runner would, and start the service.
231 application = Application(self.service_maker.tapname)231 application = Application(self.service_maker.tapname)
232 self.service.setServiceParent(application)232 self.service.setServiceParent(application)
233 self.addCleanup(self.service.disownServiceParent)
233 self.observer = application.getComponent(log.ILogObserver, None)234 self.observer = application.getComponent(log.ILogObserver, None)
234 log.addObserver(self.observer)235 log.addObserver(self.observer)
235 self.addCleanup(log.removeObserver, self.observer)236 self.addCleanup(log.removeObserver, self.observer)

Subscribers

People subscribed via source and target branches

to all changes: