From 057015b3a0921e49b46f88c5481f8fba4b8cf1ae Mon Sep 17 00:00:00 2001
From: ulif <uli@gnufix.de>
Date: Fri, 9 Feb 2018 16:40:57 +0100
Subject: [PATCH] Make `NullHandler` removable under py2.6.

When calling `logger.removeHandler(h)` with one of our custom
`NullHandler` instances, things crashed.
---
 diceware/logger.py   |  6 ++++++
 tests/test_logger.py | 12 +++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/diceware/logger.py b/diceware/logger.py
index 93f8e13..442176b 100644
--- a/diceware/logger.py
+++ b/diceware/logger.py
@@ -43,6 +43,12 @@ except ImportError:  # NOQA  # pragma: no cover
         def createLock(self):
             pass
 
+        def acquire(self):
+            pass
+
+        def release(self):
+            pass
+
 
 #: Logger that can be used for all diceware related messages.
 logger = logging.getLogger("ulif.diceware")
diff --git a/tests/test_logger.py b/tests/test_logger.py
index 7d71bf1..3a85988 100644
--- a/tests/test_logger.py
+++ b/tests/test_logger.py
@@ -1,5 +1,15 @@
 import logging
-from diceware.logger import logger, configure
+from diceware.logger import logger, configure, NullHandler
+
+
+def test_null_handler_removable():
+    # the self-made NullHander is removable under py2.6
+    my_logger = logging.getLogger('foo')
+    handler = NullHandler()
+    my_logger.addHandler(handler)
+    assert len(my_logger.handlers) == 1
+    my_logger.removeHandler(handler)
+    assert len(my_logger.handlers) == 0
 
 
 def test_logger_exists():
-- 
GitLab