]> git.phdru.name Git - cookiecutter.git/blobdiff - project_template/tests/run_all.py
Update: makefiles, sphinx docs, tests
[cookiecutter.git] / project_template / tests / run_all.py
diff --git a/project_template/tests/run_all.py b/project_template/tests/run_all.py
new file mode 100755 (executable)
index 0000000..2e217bf
--- /dev/null
@@ -0,0 +1,38 @@
+#! /usr/bin/env python
+
+
+import os
+import sys
+import subprocess
+
+
+def isexecutable(filename):
+    infile = open(filename, 'r')
+    magic = infile.read(2)
+    infile.close()
+    return magic == "#!"
+
+
+def collect_tests():
+    tests = []
+    for dirpath, dirs, files in os.walk("tests"):
+        tests.extend(
+            [os.path.join(dirpath, filename) for filename in files
+             if filename.startswith("test") and filename.endswith(".py")
+             ])
+    return [test[:-3].replace(os.sep, '.') for test in tests
+            if isexecutable(test)]
+
+
+def main():
+    os.chdir(os.path.join(os.path.dirname(sys.argv[0]), os.pardir))
+    tests = collect_tests()
+
+    os.environ["PYTHONPATH"] = os.curdir
+
+    for test in sorted(tests):
+        print test
+        subprocess.call((sys.executable, '-m', test))
+
+if __name__ == '__main__':
+    main()