hachoir / hachoir-core / test_doc.py

#!/usr/bin/env python2.4
import doctest
import sys
import os
import hachoir_core.i18n   # import it because it does change the locale
from locale import setlocale, LC_ALL

def testDoc(filename, name=None):
    print "--- %s: Run tests" % filename
    failure, nb_test = doctest.testfile(
        filename, optionflags=doctest.ELLIPSIS, name=name)
    if failure:
        sys.exit(1)
    print "--- %s: End of tests" % filename

def importModule(name):
    mod = __import__(name)
    components = name.split('.')
    for comp in components[1:]:
        mod = getattr(mod, comp)
    return mod

def testModule(name):
    print "--- Test module %s" % name
    module = importModule(name)
    failure, nb_test = doctest.testmod(module)
    if failure:
        sys.exit(1)
    print "--- End of test"

def main():
    setlocale(LC_ALL, "C")
    hachoir_dir = os.path.dirname(__file__)
    sys.path.append(hachoir_dir)

    # Configure Hachoir for tests
    import hachoir_core.config as config
    config.use_i18n = False

    # Test documentation in doc/*.rst files
    testDoc('doc/hachoir-api.rst')
    testDoc('doc/internals.rst')

    # Test documentation of some functions/classes
    testModule("hachoir_core.bits")
    testModule("hachoir_core.compatibility")
    testModule("hachoir_core.dict")
    testModule("hachoir_core.i18n")
    testModule("hachoir_core.text_handler")
    testModule("hachoir_core.tools")

if __name__ == "__main__":
    main()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.