]> git.phdru.name Git - bookmarks_db.git/blobdiff - subproc.py
Feat(subproc.py): Run tests
[bookmarks_db.git] / subproc.py
old mode 100644 (file)
new mode 100755 (executable)
index 1828b1c..502d5dd
@@ -1,3 +1,5 @@
+#! /usr/bin/env python
+
 """Run a subprocess and communicate with it via stdin, stdout, and stderr.
 
 Requires that platform supports, eg, posix-style 'os.pipe' and 'os.fork'
@@ -49,7 +51,9 @@ import select
 import signal
 
 
-SubprocessError = 'SubprocessError'
+class SubprocessError(Exception):
+    pass
+
 # You may need to increase execvp_grace_seconds, if you have a large or slow
 # path to search:
 execvp_grace_seconds = 0.5
@@ -646,15 +650,15 @@ class Ph:
 #############################################################################
 
 def test(p=0):
-    print("\tOpening subprocess:")
-    p = Subprocess('cat', 1)            # set to expire noisily...
-    print(p)
     print("\tOpening bogus subprocess, should fail:")
     try:
         b = Subprocess('/', 1)
         print("\tOops!  Null-named subprocess startup *succeeded*?!?")
     except SubprocessError:
         print("\t...yep, it failed.")
+    print("\tOpening cat subprocess:")
+    p = Subprocess('cat', 1)            # set to expire noisily...
+    print(p)
     print('\tWrite, then read, two newline-teriminated lines, using readline:')
     p.write('first full line written\n'); p.write('second.\n')
     print(repr(p.readline()))
@@ -684,3 +688,6 @@ def test(p=0):
             del p
             print("\tDone.")
             return None
+
+if __name__ == '__main__':
+    test()