Finish up this coverage stuff.
[python_utils.git] / lockfile.py
index d275f407ff237c38ceaec83c94a1abf92174b04a..ebd91158a54b80ed275bed990a3d9e35fedb0e0f 100644 (file)
@@ -8,6 +8,7 @@ import os
 import signal
 import sys
 from typing import Optional
+import warnings
 
 import config
 import datetime_utils
@@ -87,7 +88,8 @@ class LockFile(object):
             return True
         except OSError:
             pass
-        logger.warning(f'Could not acquire {self.lockfile}.')
+        msg = f'Could not acquire {self.lockfile}.'
+        logger.warning(msg)
         return False
 
     def acquire_with_retries(
@@ -132,7 +134,9 @@ class LockFile(object):
             duration = ts - self.locktime
             if duration >= config.config['lockfile_held_duration_warning_threshold_sec']:
                 str_duration = datetime_utils.describe_duration_briefly(duration)
-                logger.warning(f'Held {self.lockfile} for {str_duration}')
+                msg = f'Held {self.lockfile} for {str_duration}'
+                logger.warning(msg)
+                warnings.warn(msg, stacklevel=2)
         self.release()
 
     def __del__(self):
@@ -148,7 +152,6 @@ class LockFile(object):
             cmd = self.override_command
         else:
             cmd = ' '.join(sys.argv)
-        print(cmd)
         contents = LockFileContents(
             pid = os.getpid(),
             commandline = cmd,
@@ -170,16 +173,16 @@ class LockFile(object):
                     try:
                         os.kill(contents.pid, 0)
                     except OSError:
-                        logger.warning(f'Lockfile {self.lockfile}\'s pid ({contents.pid}) is stale; ' +
-                                       'force acquiring')
+                        msg = f'Lockfile {self.lockfile}\'s pid ({contents.pid}) is stale; force acquiring'
+                        logger.warning(msg)
                         self.release()
 
                     # Has the lock expiration expired?
                     if contents.expiration_timestamp is not None:
                         now = datetime.datetime.now().timestamp()
                         if now > contents.expiration_datetime:
-                            logger.warning(f'Lockfile {self.lockfile} expiration time has passed; ' +
-                                           'force acquiring')
+                            msg = f'Lockfile {self.lockfile} expiration time has passed; force acquiring'
+                            logger.warning(msg)
                             self.release()
         except Exception:
             pass