Merge pull request #1 from mpeuster/master
[osm/vim-emu.git] / emuvim / test / runner.py
1 #!/usr/bin/env python
2
3 """
4 Run all tests
5 -v : verbose output
6 -e : emulator test only (no API tests)
7 -a : API tests only
8 """
9
10 from unittest import defaultTestLoader, TextTestRunner, TestSuite
11 import os
12 import sys
13 from mininet.util import ensureRoot
14 from mininet.clean import cleanup
15 from mininet.log import setLogLevel
16
17
18 def runTests( testDir, verbosity=1, emuonly=False, apionly=False ):
19 "discover and run all tests in testDir"
20 # ensure root and cleanup before starting tests
21 ensureRoot()
22 cleanup()
23 # discover all tests in testDir
24 testSuite = defaultTestLoader.discover( testDir )
25 if emuonly:
26 testSuiteFiltered = [s for s in testSuite if "Emulator" in str(s)]
27 testSuite = TestSuite()
28 testSuite.addTests(testSuiteFiltered)
29 if apionly:
30 testSuiteFiltered = [s for s in testSuite if "Api" in str(s)]
31 testSuite = TestSuite()
32 testSuite.addTests(testSuiteFiltered)
33
34 # run tests
35 TextTestRunner( verbosity=verbosity ).run( testSuite )
36
37
38 def main(thisdir):
39 setLogLevel( 'warning' )
40 # get the directory containing example tests
41 vlevel = 2 if '-v' in sys.argv else 1
42 emuonly = ('-e' in sys.argv)
43 apionly = ('-a' in sys.argv)
44 runTests(
45 testDir=thisdir, verbosity=vlevel, emuonly=emuonly, apionly=apionly)
46
47
48 if __name__ == '__main__':
49 thisdir = os.path.dirname( os.path.realpath( __file__ ) )
50 main(thisdir)