allow selecting individual tests with runtests.py
[python-delta-tar] / runtests.py
index a168d8b..fe2e570 100755 (executable)
@@ -32,5 +32,46 @@ from testing.test_deltatar import (DeltaTarTest, DeltaTar2Test,
 from testing.test_compression_level import suite
 
 if __name__ == "__main__":
-    unittest.TextTestRunner().run(suite())
-    unittest.main()
+    import sys
+    if len (sys.argv) == 1:
+        unittest.TextTestRunner().run(suite())
+        unittest.main()
+    else:
+        suite = unittest.TestSuite ()
+        def add (n):
+            ret = False
+            for group in [#testing.test_multivol
+                           MultivolGnuFormatTest, MultivolPaxFormatTest
+                         # testing.test_concat_compress
+                         , ConcatCompressTest
+                         # testing.test_rescue_tar
+                         , RescueTarTest
+                         # testing.test_encryption
+                         , EncryptionTest
+                         # testing.test_deltatar
+                         , DeltaTarTest,             DeltaTar2Test
+                         , DeltaTarStreamTest,       DeltaTarGzipTest
+                         , DeltaTarGzipStreamTest,   DeltaTarGzipConcatTest
+                         , DeltaTarGzipAes128ConcatTest
+                         , DeltaTarGzipAes256ConcatTest
+                         , DeltaTarAes128ConcatTest, DeltaTarAes256ConcatTest
+                         ]:
+                try:
+                    t = group (n)
+                except ValueError: # no such test
+                    continue
+                print ("including ā€œ%sā€" % n)
+                suite.addTest(t)
+                ret = True
+            return ret
+        n = 0
+        for arg in sys.argv [1:]:
+            if add (arg) is True:
+                n += 1
+        if n == 0:
+            print ("ERROR: no valid test name specified, please double-check",
+                   file=sys.stderr)
+            sys.exit (-1)
+        runner = unittest.TextTestRunner ()
+        runner.run (suite)
+