test_doctests.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # -*- coding: utf-8 -*-
  2. """
  3. Tests checkers
  4. """
  5. import doctest
  6. import grass.gunittest
  7. import grass.gunittest.utils
  8. import grass.pygrass.modules as gmodules
  9. # doctest does not allow changing the base classes of test case, skip test case
  10. # and test suite, so we need to create a new type which inherits from our class
  11. # and contains doctest's methods
  12. # the alternative is to copy 500 from doctest and change what is needed
  13. # (this might be necessary anyway beacuse of the reports and stdout and stderr)
  14. doctest.DocFileCase = type('DocFileCase',
  15. (grass.gunittest.TestCase,),
  16. dict(doctest.DocFileCase.__dict__))
  17. doctest.SkipDocTestCase = type('SkipDocTestCase',
  18. (grass.gunittest.TestCase,),
  19. dict(doctest.SkipDocTestCase.__dict__))
  20. def load_tests(loader, tests, ignore):
  21. # TODO: this must be somewhere when doctest is called, not here
  22. # TODO: ultimate solution is not to use _ as a buildin in lib/python
  23. # for now it is the only place where it works
  24. grass.gunittest.utils.do_doctest_gettext_workaround()
  25. # this should be called at some top level
  26. tests.addTests(doctest.DocTestSuite(gmodules.interface.flag))
  27. tests.addTests(doctest.DocTestSuite(gmodules.interface.module))
  28. tests.addTests(doctest.DocTestSuite(gmodules.interface.parameter))
  29. return tests
  30. if __name__ == '__main__':
  31. grass.gunittest.test()