Adding more tests, working on the test harness.
[python_utils.git] / unittest_utils.py
index 2dc8cfe231e5aad03d877fac8116472e0c4b6c3d..8a0556bb52bd8a0e6a135c3923bc0749bdb167d8 100644 (file)
@@ -148,15 +148,19 @@ def check_all_methods_for_perf_regressions(prefix='test_'):
 
 
 def breakpoint():
+    """Hard code a breakpoint somewhere; drop into pdb."""
     import pdb
     pdb.set_trace()
 
 
 class RecordStdout(object):
     """
-        with uu.RecordStdout() as record:
-            print("This is a test!")
-        print({record().readline()})
+    Record what is emitted to stdout.
+
+    >>> with RecordStdout() as record:
+    ...     print("This is a test!")
+    >>> print({record().readline()})
+    {'This is a test!\\n'}
     """
 
     def __init__(self) -> None:
@@ -176,9 +180,13 @@ class RecordStdout(object):
 
 class RecordStderr(object):
     """
-        with uu.RecordStderr() as record:
-            print("This is a test!", file=sys.stderr)
-        print({record().readline()})
+    Record what is emitted to stderr.
+
+    >>> import sys
+    >>> with RecordStderr() as record:
+    ...     print("This is a test!", file=sys.stderr)
+    >>> print({record().readline()})
+    {'This is a test!\\n'}
     """
 
     def __init__(self) -> None:
@@ -198,12 +206,9 @@ class RecordStderr(object):
 
 class RecordMultipleStreams(object):
     """
-        with uu.RecordStreams(sys.stderr, sys.stdout) as record:
-            print("This is a test!")
-            print("This is one too.", file=sys.stderr)
-
-        print(record().readlines())
+    Record the output to more than one stream.
     """
+
     def __init__(self, *files) -> None:
         self.files = [*files]
         self.destination = tempfile.SpooledTemporaryFile(mode='r+')
@@ -219,3 +224,8 @@ class RecordMultipleStreams(object):
         for f in self.files:
             f.write = self.saved_writes.pop()
         self.destination.seek(0)
+
+
+if __name__ == '__main__':
+    import doctest
+    doctest.testmod()