#
# Copyright (c) 2015-2019 Thierry Florac <tflorac AT ulthar.net>
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
"""
Generic test case for pyams_template doctests
"""
__docformat__ = 'restructuredtext'
import doctest
import os
import unittest
from pyams_template.tests import get_package_dir
CURRENT_DIR = os.path.abspath(os.path.dirname(__file__))
[docs]def doc_suite(test_dir, setUp=None, tearDown=None, globs=None): # pylint: disable=invalid-name
"""Returns a test suite, based on doctests found in /doctests"""
suite = []
if globs is None:
globs = globals()
flags = (doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE |
doctest.REPORT_ONLY_FIRST_FAILURE)
package_dir = get_package_dir(test_dir)
doctest_dir = os.path.join(package_dir, 'doctests')
# filtering files on extension
docs = [os.path.join(doctest_dir, doc) for doc in
os.listdir(doctest_dir) if doc.endswith('.txt') or doc.endswith('.rst')]
for test in docs:
suite.append(doctest.DocFileSuite(test, optionflags=flags,
globs=globs, setUp=setUp,
tearDown=tearDown,
module_relative=False))
return unittest.TestSuite(suite)
[docs]def test_suite():
"""Returns the test suite"""
return doc_suite(CURRENT_DIR)
if __name__ == '__main__':
unittest.main(defaultTest='test_suite')