X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=test%2F__main__.py;h=aca4e64ec83a4f944e57ec67117c6d2de74db0db;hb=d08e0af9bf86e81d4a5b3dbbe38092bacc5edd62;hp=175c884766c899a6cd668ded6ec00b601d1848e0;hpb=bdb596b84a06d0c97e39d42586a51fc36ba44186;p=dunshire.git diff --git a/test/__main__.py b/test/__main__.py old mode 100644 new mode 100755 index 175c884..aca4e64 --- a/test/__main__.py +++ b/test/__main__.py @@ -1,3 +1,34 @@ +#!/usr/bin/env python +""" +An implementation of __main__() that allows us to "run this module." +""" +from sys import argv + from test import build_suite, run_suite -run_suite(build_suite()) +# We take two command-line arguments. The first enables you to turn +# off the doctests, which are deterministic. The second tells us to +# repeat the test suite indefinitely rather than return the result +# of running it once. The flags usually occur together so that we +# don't waste time running the doctests in a loop. +doctests = True +loop = False + +if "--no-doctests" in argv: + doctests = False + +if "--loop" in argv: + loop = True + +# Running the test suite clobbers it! And deepcopy() doesn't work on a +# suite that contains doctests! ARRRGRRGRRGRHG!!!!!! You're all idiots. +result = run_suite(build_suite(doctests)) + +if result.wasSuccessful() and not loop: + exit(0) + +if loop: + while(result.wasSuccessful()): + result = run_suite(build_suite(doctests)) + +exit(1)