summaryrefslogtreecommitdiff
path: root/crocoite/test_logger.py
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2018-07-28 20:25:49 +0200
committerLars-Dominik Braun <lars@6xq.net>2018-08-04 14:11:31 +0200
commit3deded13df1339ef59a760c188804adffd9ed902 (patch)
tree5eaf69ee38389073e7323585c6afdbbf5eeab487 /crocoite/test_logger.py
parent33a137f2d7c04468038d689b53a70fb534297f55 (diff)
downloadcrocoite-3deded13df1339ef59a760c188804adffd9ed902.tar.gz
crocoite-3deded13df1339ef59a760c188804adffd9ed902.tar.bz2
crocoite-3deded13df1339ef59a760c188804adffd9ed902.zip
Reintroduce WARC logging
Commit 7730e0d64ec895091a0dd7eb0e3c6ce2ed02d981 removed logging to WARC files. Add it again, but with a different implementation.. Credits to structlog for inspiration.
Diffstat (limited to 'crocoite/test_logger.py')
-rw-r--r--crocoite/test_logger.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/crocoite/test_logger.py b/crocoite/test_logger.py
new file mode 100644
index 0000000..8a34aab
--- /dev/null
+++ b/crocoite/test_logger.py
@@ -0,0 +1,60 @@
+import pytest
+from .logger import Logger, Consumer, NullConsumer
+
+@pytest.fixture
+def logger ():
+ return Logger (consumer=[NullConsumer ()])
+
+class QueueConsumer (Consumer):
+ def __init__ (self):
+ self.data = []
+
+ def __call__ (self, **kwargs):
+ self.data.append (kwargs)
+ return kwargs
+
+def test_bind (logger):
+ # simple bind
+ logger = logger.bind (foo='bar')
+ ret = logger.debug ()
+ assert ret['foo'] == 'bar'
+
+ # additional
+ ret = logger.debug (bar='baz')
+ assert ret['foo'] == 'bar'
+ assert ret['bar'] == 'baz'
+
+ # override
+ ret = logger.debug (foo='baz')
+ assert ret['foo'] == 'baz'
+
+ # unbind
+ logger = logger.unbind (foo=None)
+ ret = logger.debug ()
+ assert 'foo' not in ret
+
+def test_consumer (logger):
+ c = QueueConsumer ()
+ logger.connect (c)
+ ret = logger.debug (foo='bar')
+ assert len (c.data) == 1
+ assert c.data[0] == ret
+ assert ret['foo'] == 'bar'
+ c.data = []
+
+ # inheritance
+ logger = logger.bind (inherit=1)
+ ret = logger.debug (foo='bar')
+ assert len (c.data) == 1
+ assert c.data[0] == ret
+ assert ret['foo'] == 'bar'
+ assert ret['inherit'] == 1
+ c.data = []
+
+ # removal
+ logger.disconnect (c)
+ ret = logger.debug (foo='bar')
+ assert len (c.data) == 0
+ assert ret['foo'] == 'bar'
+ assert ret['inherit'] == 1
+