def test_build_with_just_one_rst(tmp_project_with_docs_skeleton): project = tmp_project_with_docs_skeleton (project / "doc" / "Example_Notebook_0.rst").write_text(EXAMPLE_0_RST) build('html', str(project / "builtdocs"), project_root=str(project), examples_assets='') assert (project / "builtdocs" / "Example_Notebook_0.html").is_file() assert not (project / "builtdocs" / "Example_Notebook_1.html").is_file() assert (project / "builtdocs" / ".nojekyll").is_file()
def test_build_with_clean_dry_run_does_not_delete(tmp_project_with_docs_skeleton): project = tmp_project_with_docs_skeleton (project / "doc" / "Example_Notebook_0.rst").write_text(EXAMPLE_0_RST) (project / "doc" / "Example_Notebook_1.rst").write_text(EXAMPLE_1_RST) build('html', str(project / "builtdocs"), project_root=str(project), examples_assets='', clean_dry_run=True) assert (project / "builtdocs" / ".doctrees").is_dir() assert (project / "builtdocs" / "Example_Notebook_1.html").is_file() assert len(list((project / "builtdocs").iterdir())) == 12
def test_build_copies_json(tmp_project_with_docs_skeleton): project = tmp_project_with_docs_skeleton (project / "doc" / "Example_Notebook_0.rst").write_text(EXAMPLE_0_RST) (project / "doc" / "example_json_blob.json").write_text("some json") (project / "doc" / "topics").mkdir() (project / "doc" / "topics" / "nested_example_json_blob.json").write_text("some json") build('html', str(project / "builtdocs"), project_root=str(project), examples_assets='') assert (project / "builtdocs" / "example_json_blob.json").is_file() assert (project / "builtdocs" / "topics").is_dir() assert (project / "builtdocs" / "topics" / "nested_example_json_blob.json").is_file()
def test_build_deletes_by_default(tmp_project_with_docs_skeleton): project = tmp_project_with_docs_skeleton (project / "doc" / "Zeroth_Notebook.rst").write_text(EXAMPLE_0_RST) (project / "doc" / "First_Notebook.rst").write_text(EXAMPLE_1_RST) build('html', str(project / "builtdocs"), project_root=str(project), examples_assets='') assert not (project / "builtdocs" / ".doctrees").is_dir() assert (project / "builtdocs" / "First_Notebook.html").is_file() assert len(list((project / "builtdocs").iterdir())) == 10
def test_build_with_nblink_at_top_succeeds(tmp_project_with_docs_skeleton): project = tmp_project_with_docs_skeleton generate_rst("test_project", project_root=str(project), nblink='top', host='GitHub', org='pyviz', repo='nbsite', branch='master') rstpath = (project / "doc" / "Example_Notebook_1.rst") assert rstpath.is_file() build('html', str(project / "builtdocs"), project_root=str(project), examples_assets='') assert (project / "builtdocs" / "Example_Notebook_1.html").is_file() html = (project / "builtdocs" / "Example_Notebook_1.html").read_text() assert 'This is another temporary notebook that gets created for tests' in html, \ "The notebook did not get build to html properly - look for sphinx warnings and errors"
def test_build(tmp_project_with_docs_skeleton): project = tmp_project_with_docs_skeleton (project / "doc" / "Zeroth_Notebook.rst").write_text(EXAMPLE_0_RST) (project / "doc" / "First_Notebook.rst").write_text(EXAMPLE_1_RST) build('html', str(project / "builtdocs"), project_root=str(project), examples_assets='') assert (project / "doc" / "0_Zeroth_Notebook.ipynb").is_file() assert (project / "doc" / "1_First_Notebook.ipynb").is_file() assert (project / "builtdocs" / "Zeroth_Notebook.html").is_file() assert (project / "builtdocs" / "First_Notebook.html").is_file()
def test_build_with_error_output(tmp_project_with_docs_skeleton): project = tmp_project_with_docs_skeleton (project / "doc" / "Example_Notebook_0.rst").write_text(EXAMPLE_0_RST) (project / "doc" / "Example_Notebook_1.rst").write_text(EXAMPLE_1_RST) (project / "doc" / "Example_Notebook_2.rst").write_text(EXAMPLE_2_RST) assert not (project / "doc" / "Example_Notebook_2.ipynb").is_file() build('html', str(project / "builtdocs"), project_root=str(project), examples_assets='') assert (project / "doc" / "Example_Notebook_1.ipynb").is_file() assert (project / "doc" / "Example_Notebook_2.ipynb").is_file() nb = json.loads((project / "doc" / "Example_Notebook_2.ipynb").read_text()) assert nb['cells'][1]['outputs'][0]['ename'] == 'ModuleNotFoundError' assert len(nb['cells'][2]['outputs']) == 0
def test_build_with_fixes_links(tmp_project): project = tmp_project (project / "doc").mkdir() (project / "doc" / "conf.py").write_text(CONF_CONTENT) (project / "examples" / "index.ipynb").write_text(EXAMPLE_0_CONTENT) generate_rst("test_project", project_root=str(project)) build('html', str(project / "builtdocs"), project_root=str(project), examples_assets='') assert (project / "doc" / "1_First_Notebook.ipynb").is_file() assert (project / "builtdocs" / "First_Notebook.html").is_file() html = (project / "builtdocs" / "First_Notebook.html").read_text() assert '<a href="Zeroth_Notebook.html">right number</a>' in html assert '<a href="Zeroth_Notebook.html">wrong number</a>' in html assert '<a href="Zeroth_Notebook.html">no number</a>' in html