Example #1
0
    def test_build_directory(self, tmpdir, find_data_file):
        config = {
            'WORKING_DIR': str(tmpdir),
            'TARGET': find_data_file('directory'),
        }
        builder = Builder(**config)
        builder.build()

        final_path = os.path.join(str(tmpdir), 'build', 'index.html')
        assert os.path.exists(final_path)
Example #2
0
    def test_build_single(self, tmpdir, find_data_file):
        target = find_data_file('single.rst')
        config = {
            'WORKING_DIR': str(tmpdir),
            'TARGET': target,
        }
        builder = Builder(**config)
        builder.build()

        final_path = os.path.join(str(tmpdir), 'build', 'index.html')
        assert os.path.exists(final_path)
Example #3
0
    def test_build_package(self, tmpdir, find_data_file):
        target = find_data_file('package')
        config = {
            'WORKING_DIR': str(tmpdir),
            'TARGET': target,
            'PACKAGE': True,
            'PACKAGE_DOCS': 'docs',
        }
        builder = Builder(**config)
        builder.build()

        build_dir = os.path.join(str(tmpdir), 'build')
        assert os.path.exists(os.path.join(build_dir, 'index.html'))
        assert os.path.exists(os.path.join(build_dir, 'modules.html'))
        assert os.path.exists(os.path.join(build_dir, 'svdummy.html'))
Example #4
0
def create_server(**config):
    """
    Creates a new flask app and wraps it in a livereload server. If the config
    calls for a package build, this funciton will also create and activate a
    virtual environment in the build directory so that autodoc can properly
    import needed modules
    """
    working_dir = config['WORKING_DIR']
    target_path = config['TARGET']

    template_folder = os.path.join(working_dir, 'build')
    static_folder = os.path.join(template_folder, '_static')

    app = flask.Flask(
        __name__,
        static_folder=static_folder,
        template_folder=template_folder,
    )
    app.debug = True
    app.config.from_mapping(**config)

    app.logger.debug("Registering route")

    @app.route('/')
    def index():
        return flask.send_from_directory(template_folder, 'index.html')

    @app.route('/<path:page>')
    def subpage(page):
        return flask.send_from_directory(template_folder, page)

    app.logger.debug("configuring livereload server")
    server = Server(app.wsgi_app)

    app.logger.debug("Setting up the builder")
    builder = Builder(logger=app.logger, **config)

    app.logger.debug("performing initial build")
    builder.build()

    app.logger.debug("setting watch for target: {}".format(target_path))
    server.watch(target_path, builder.build)

    app.logger.debug("finished creating server")
    return (server, builder)
Example #5
0
 def test_init_for_single(self, tmpdir, find_data_file):
     config = {
         'WORKING_DIR': str(tmpdir),
         'TARGET': find_data_file('single.rst'),
     }
     builder = Builder(**config)
     assert builder is not None
     assert builder.working_dir == str(tmpdir)
     assert builder.target == find_data_file('single.rst')
     assert builder.build_dir == os.path.join(str(tmpdir), 'build')
Example #6
0
    def test_build_conf_file(self, tmpdir, find_data_file):
        target = find_data_file('single.rst')
        config = {
            'WORKING_DIR': str(tmpdir),
            'TARGET': target,
        }
        builder = Builder(**config)
        builder.remake_build_dir()
        builder.copy_file()
        builder.build_conf_file()

        final_path = os.path.join(str(tmpdir), 'build', 'conf.py')
        with open(final_path) as final_file:
            assert "source_suffix = '.rst'" in final_file.read()
Example #7
0
 def test_init_for_package(self, tmpdir, find_data_file):
     target = find_data_file('package')
     config = {
         'WORKING_DIR': str(tmpdir),
         'TARGET': target,
         'PACKAGE': True,
         'PACKAGE_DOCS': 'docs',
     }
     builder = Builder(**config)
     assert builder is not None
     assert builder.working_dir == str(tmpdir)
     assert builder.target == os.path.join(target, 'docs')
     assert builder.build_dir == os.path.join(str(tmpdir), 'build')
     assert os.path.exists(os.path.join(str(tmpdir), 'env'))
     assert sys.prefix == os.path.join(str(tmpdir), 'env')
Example #8
0
 def test_copy_dir(self, tmpdir, find_data_file):
     target = find_data_file('package')
     config = {
         'WORKING_DIR': str(tmpdir),
         'TARGET': target,
         'PACKAGE': True,
         'PACKAGE_DOCS': 'docs',
     }
     builder = Builder(**config)
     builder.remake_build_dir()
     builder.copy_dir()
     assert os.path.exists(os.path.join(str(tmpdir), 'build', 'index.rst'))
Example #9
0
    def test_copy_file(self, tmpdir, find_data_file):
        target = find_data_file('single.rst')
        config = {
            'WORKING_DIR': str(tmpdir),
            'TARGET': target,
        }
        builder = Builder(**config)
        builder.remake_build_dir()
        builder.copy_file()
        final_path = os.path.join(str(tmpdir), 'build', 'index.rst')
        assert os.path.exists(final_path)

        with open(target) as original_file:
            with open(final_path) as final_file:
                assert original_file.read() == final_file.read()
Example #10
0
    def test_fetch_ext_from_index(self, tmpdir, find_data_file):
        target = find_data_file('single.rst')
        config = {
            'WORKING_DIR': str(tmpdir),
            'TARGET': target,
        }
        builder = Builder(**config)
        builder.remake_build_dir()
        builder.copy_file()
        assert builder.fetch_ext_from_index() == '.rst'

        target = find_data_file('single.md')
        config = {
            'WORKING_DIR': str(tmpdir),
            'TARGET': target,
        }
        builder = Builder(**config)
        builder.remake_build_dir()
        builder.copy_file()
        assert builder.fetch_ext_from_index() == '.md'