]> gitweb.michael.orlitzky.com - djbdns-logparse.git/commitdiff
bin/djbdns-logparse.py: add doctest for parse_logfile().
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 15 Sep 2022 14:15:46 +0000 (10:15 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 15 Sep 2022 14:15:46 +0000 (10:15 -0400)
bin/djbdns-logparse.py

index 9af836262e78f1e485188a65a6854072d0de084b..067d9b17749cbc87b9b786dcb11f4054cb68ba79 100755 (executable)
@@ -248,7 +248,7 @@ def handle_tinydns_log(line : str, match: re.Match):
 
 
 def parse_logfile(file : typing.TextIO):
-    """
+    r"""
     Process a single log ``file``.
 
     Parameters
@@ -257,6 +257,20 @@ def parse_logfile(file : typing.TextIO):
     file : typing.TextIO
         An open log file, or stdin.
 
+    Examples
+    --------
+
+        >>> line = "@4000000063227a320c4f3114 7f000001:9d61:be69 - 0001 www.example.com\n"
+        >>> from tempfile import NamedTemporaryFile
+        >>> with NamedTemporaryFile(mode="w", delete=False) as f:
+        ...     _ = f.write(line)
+        >>> f = open(f.name, 'r')
+        >>> parse_logfile(f)
+        2022-09-14 21:04:40.206516500 dropped query (no authority) from 127.0.0.1:40289 (id 48745): a www.example.com
+        >>> f.close()
+        >>> from os import remove
+        >>> remove(f.name)
+
     """
     # Open pipe to tai64nlocal: we will write lines of our input (the
     # raw log file) to it, and read log lines with readable timestamps