| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- """
- # MkDocs Integration tests
- This is a simple integration test that builds the MkDocs
- documentation against all of the builtin themes.
- From the root of the MkDocs git repo, use:
- python -m mkdocs.tests.integration --help
- TODOs
- - Build with different configuration options.
- - Build documentation other than just MkDocs as it is relatively simple.
- """
- import click
- import logging
- import os
- import subprocess
- from mkdocs import utils
- log = logging.getLogger('mkdocs')
- DIR = os.path.dirname(__file__)
- MKDOCS_CONFIG = os.path.abspath(os.path.join(DIR, '../../mkdocs.yml'))
- MKDOCS_THEMES = utils.get_theme_names()
- TEST_PROJECTS = os.path.abspath(os.path.join(DIR, 'integration'))
- @click.command()
- @click.option('--output',
- help="The output directory to use when building themes",
- type=click.Path(file_okay=False, writable=True),
- required=True)
- def main(output=None):
- log.propagate = False
- stream = logging.StreamHandler()
- formatter = logging.Formatter(
- "\033[1m\033[1;32m *** %(message)s *** \033[0m")
- stream.setFormatter(formatter)
- log.addHandler(stream)
- log.setLevel(logging.DEBUG)
- base_cmd = ['mkdocs', 'build', '-s', '-v', '--site-dir', ]
- log.debug("Building installed themes.")
- for theme in sorted(MKDOCS_THEMES):
- log.debug("Building theme: {}".format(theme))
- project_dir = os.path.dirname(MKDOCS_CONFIG)
- out = os.path.join(output, theme)
- command = base_cmd + [out, '--theme', theme]
- subprocess.check_call(command, cwd=project_dir)
- log.debug("Building test projects.")
- for project in os.listdir(TEST_PROJECTS):
- log.debug("Building test project: {}".format(project))
- project_dir = os.path.join(TEST_PROJECTS, project)
- out = os.path.join(output, project)
- command = base_cmd + [out, ]
- subprocess.check_call(command, cwd=project_dir)
- log.debug("Theme and integration builds are in {}".format(output))
- if __name__ == '__main__':
- main()
|