testutils
– Utils for Running Python Unittests¶
- RunTests()¶
This function behaves as a custom TestLoader for python unittests.
With no system arguments, the default unittest TestRunner is used.
If the first system argument (sys.argv[1]) is set to ‘xml’, a XMLTestRunner is used, which produces a JUnit compatible XML output file. Within the current module, each function is identified which is a subclass of unittest.TestCase and for each TestCase, a test suite is executed, producing an individual output file for each TestCase. The output file has the name, ‘PYTEST-<TestCaseName>.xml’.
Example of a Python testcase:
import unittest class TestRenumber(unittest.TestCase): def setUp(self): # prepare stuff" pass def testSomeFunction(self): # do some asserts pass if __name__ == "__main__": from ost import testutils testutils.RunTests()
- SetDefaultCompoundLib()¶
This function tries to ensure that a default compound library is set. When calling scripts with
ost
this is not needed, but since unit tests are called withpython
we need to ensure that it is set. The function is only expected to succeed (and return True) ifCOMPOUND_LIB
was set when configuring the compilation.It tries the following:
get it with
ost.conop.GetDefaultLib()
look for
compounds.chemlib
in$OST_ROOT/share/openstructure
if
OST_ROOT
not set in the above, try to guess it based on the path of theconop
module
To use this check modify the
RunTests()
call to read:if __name__ == "__main__": from ost import testutils if testutils.SetDefaultCompoundLib(): testutils.RunTests() else: print 'No compound library available. Ignoring test_XXX.py tests.'
- Returns:
True, if a compound library was found and set to be accessed with
ost.conop.GetDefaultLib()
. False otherwise.