from unittest import TestSuite
from django.test.simple import doctest, doctestOutputChecker
from ambidjangolib.test.simple import DocTestRunner

def build_for_doctests(*module_paths, **kwargs):
    kwargs.setdefault('checker', doctestOutputChecker)
    kwargs.setdefault('runner', DocTestRunner)
    kwargs.setdefault('optionflags', doctest.REPORT_ONLY_FIRST_FAILURE)
    def suite_func():
        suite = TestSuite()
        for module_path in module_paths:
            module = __import__(module_path)
            for submodule_name in module_path.split('.')[1:]:
                module = getattr(module, submodule_name)
            suite.addTest(doctest.DocTestSuite(module, **kwargs))
        return suite
    return suite_func
