def test_create_with_index_and_doc_and_two_builders(self): prj = self._prj() base_yaml_conf_two_builders = """ docs: docs: builder: html dir: "" html_theme: default html_short_title: testsub docs2: dir: "" builder: pickle """ self._add(prj, "code_config.yaml", base_yaml_conf_two_builders) self._add(prj, "index.rst", base_index_rst) self._add(prj, "doc1.rst", base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ["docs", "docs2"] pickle_builder = sd.get_builder("docs2") assert pickle_builder.template doc = pickle_builder.template_data("", {}) assert doc["title"] == "Unit testing sphinx docs" html_builder = sd.get_builder("docs") assert not html_builder.template raw = html_builder.raw_content("index.html", {}) assert "<h1>Unit testing sphinx docs" in raw
def test_html_and_raw_builders_in_different_dirs(self): prj = self._prj() base_yaml_conf_two_builders = """ docs: html: dir: html_docs builder: html raw: builder: raw dir: pages """ self._add(prj, 'code_config.yaml', base_yaml_conf_two_builders) self._add(prj, 'html_docs/index.rst', base_index_rst) self._add(prj, 'html_docs/doc1.rst', base_document1_rst) self._add(prj, 'pages/index.html', self.html1) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ['html', 'raw'] raw_builder = sd.get_builder('raw') doc = raw_builder.raw_content('index.html', {}) assert doc == self.html1 html_builder = sd.get_builder('html') assert not html_builder.template raw = html_builder.raw_content('index.html', {}) assert "<h1>Unit testing sphinx docs" in raw
def test_two_builders_with_other_config_fmt(self): prj = self._prj() base_yaml_conf_two_builders = """ #sphinx_docs: # dir: "docs" # builders: # - html: # html_theme: default # html_short_title: testsub # dir: html_docs # - raw: # dir: pages docs: docs: builder: html html_theme: default html_short_title: testsub dir: html_docs pages: builder: raw """ self._add(prj, 'code_config.yaml', base_yaml_conf_two_builders) self._add(prj, 'html_docs/index.rst', base_index_rst) self._add(prj, 'html_docs/doc1.rst', base_document1_rst) self._add(prj, 'pages/index.html', self.html1) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ['docs', 'pages'] # noqa Sorted alphabetically by default raw_builder = sd.get_builder('pages') doc = raw_builder.raw_content('index.html', {}) assert doc == self.html1 html_builder = sd.get_builder('docs') assert not html_builder.template raw = html_builder.raw_content('index.html', {}) assert "<h1>Unit testing sphinx docs" in raw
def test_create_with_index_and_doc_and_two_builders(self): prj = self._prj() base_yaml_conf_two_builders = """ docs: html: dir: '' builder: html pickle: dir: '' builder: pickle """ self._add(prj, 'code_config.yaml', base_yaml_conf_two_builders) self._add(prj, 'index.rst', base_index_rst) self._add(prj, 'doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ['html', 'pickle'] pickle_builder = sd.get_builder('pickle') assert pickle_builder.template doc = pickle_builder.template_data('', {}) assert doc['title'] == 'Unit testing sphinx docs' html_builder = sd.get_builder('html') assert not html_builder.template raw = html_builder.raw_content('index.html', {}) assert "<h1>Unit testing sphinx docs" in raw
def test_html_and_raw_builders_in_different_dirs(self): prj = self._prj() base_yaml_conf_two_builders = """ docs: docs: builder: html html_short_title: testsub dir: html_docs html_theme: default pages: builder: raw dir: pages """ self._add(prj, "code_config.yaml", base_yaml_conf_two_builders) self._add(prj, "html_docs/index.rst", base_index_rst) self._add(prj, "html_docs/doc1.rst", base_document1_rst) self._add(prj, "pages/index.html", self.html1) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ["docs", "pages"] raw_builder = sd.get_builder("pages") doc = raw_builder.raw_content("index.html", {}) assert doc == self.html1 html_builder = sd.get_builder("docs") assert not html_builder.template raw = html_builder.raw_content("index.html", {}) assert "<h1>Unit testing sphinx docs" in raw
def test_two_builders_with_other_config_fmt(self): prj = self._prj() base_yaml_conf_two_builders = """ docs: docs: builder: html html_theme: default html_short_title: testsub dir: html_docs pages: builder: raw """ self._add(prj, "code_config.yaml", base_yaml_conf_two_builders) self._add(prj, "html_docs/index.rst", base_index_rst) self._add(prj, "html_docs/doc1.rst", base_document1_rst) self._add(prj, "pages/index.html", self.html1) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ["docs", "pages"] # noqa Sorted alphabetically by default raw_builder = sd.get_builder("pages") doc = raw_builder.raw_content("index.html", {}) assert doc == self.html1 html_builder = sd.get_builder("docs") assert not html_builder.template raw = html_builder.raw_content("index.html", {}) assert "<h1>Unit testing sphinx docs" in raw
def test_create_with_index_and_doc_and_two_builders(self): prj = self._prj() base_yaml_conf_two_builders = """ docs: docs: builder: html dir: "" html_theme: default html_short_title: testsub docs2: dir: "" builder: pickle """ self._add(prj, 'code_config.yaml', base_yaml_conf_two_builders) self._add(prj, 'index.rst', base_index_rst) self._add(prj, 'doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ['docs', 'docs2'] pickle_builder = sd.get_builder('docs2') assert pickle_builder.template doc = pickle_builder.template_data('', {}) assert doc['title'] == 'Unit testing sphinx docs' html_builder = sd.get_builder('docs') assert not html_builder.template raw = html_builder.raw_content('index.html', {}) assert "<h1>Unit testing sphinx docs" in raw
def test_html_and_raw_builders_in_different_dirs(self): prj = self._prj() base_yaml_conf_two_builders = """ docs: docs: builder: html html_short_title: testsub dir: html_docs html_theme: default pages: builder: raw dir: pages """ self._add(prj, 'code_config.yaml', base_yaml_conf_two_builders) self._add(prj, 'html_docs/index.rst', base_index_rst) self._add(prj, 'html_docs/doc1.rst', base_document1_rst) self._add(prj, 'pages/index.html', self.html1) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ['docs', 'pages'] raw_builder = sd.get_builder('pages') doc = raw_builder.raw_content('index.html', {}) assert doc == self.html1 html_builder = sd.get_builder('docs') assert not html_builder.template raw = html_builder.raw_content('index.html', {}) assert "<h1>Unit testing sphinx docs" in raw
def test_html_and_raw_builders(self): prj = self._prj() base_yaml_conf_two_builders = """ docs: html: dir: docs builder: html raw: dir: docs builder: raw """ self._add(prj, 'code_config.yaml', base_yaml_conf_two_builders) self._add(prj, 'docs/index.rst', base_index_rst) self._add(prj, 'docs/index.html', self.html1) self._add(prj, 'docs/doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ['html', 'raw'] raw_builder = sd.get_builder('raw') doc = raw_builder.raw_content('index.html', {}) assert doc == self.html1 html_builder = sd.get_builder('html') assert not html_builder.template raw = html_builder.raw_content('index.html', {}) assert "<h1>Unit testing sphinx docs" in raw
def test_two_builders_with_other_config_fmt(self): prj = self._prj() base_yaml_conf_two_builders = """ docs: docs: builder: html html_theme: default html_short_title: testsub dir: html_docs pages: builder: raw """ self._add(prj, 'code_config.yaml', base_yaml_conf_two_builders) self._add(prj, 'html_docs/index.rst', base_index_rst) self._add(prj, 'html_docs/doc1.rst', base_document1_rst) self._add(prj, 'pages/index.html', self.html1) sd = SphinxDocs(prj.name) sd.build_all() assert sd.builders == ['docs', 'pages'] # noqa Sorted alphabetically by default raw_builder = sd.get_builder('pages') doc = raw_builder.raw_content('index.html', {}) assert doc == self.html1 html_builder = sd.get_builder('docs') assert not html_builder.template raw = html_builder.raw_content('index.html', {}) assert "<h1>Unit testing sphinx docs" in raw
def test_build_info(self): prj = self._prj() self._add(prj, 'docs/index.rst', base_index_rst) self._add(prj, 'docs/doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() bi = sd.last_build_info() assert bi['status'] == 'success'
def test_build_info(self): prj = self._prj() self._add(prj, 'docs/index.rst', base_index_rst) self._add(prj, 'docs/doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() bi = sd.last_build_info() assert bi['status'] == 'success'
def test_create_with_index_and_doc(self): prj = self._prj() self._add(prj, 'docs/index.rst', base_index_rst) self._add(prj, 'docs/doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() builder = sd.get_builder() doc = builder.template_data('', {}) assert doc['title'] == 'Unit testing sphinx docs'
def test_create_with_index_and_doc(self): prj = self._prj() self._add(prj, 'docs/index.rst', base_index_rst) self._add(prj, 'docs/doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() builder = sd.get_builder() doc = builder.template_data('', {}) assert doc['title'] == 'Unit testing sphinx docs'
def test_build_info(self): prj = self._prj() self._add(prj, "code_config.yaml", base_yaml_conf) self._add(prj, "index.rst", base_index_rst) self._add(prj, "doc1.rst", base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() bi = sd.last_build_info() assert bi["status"] == "success"
def test_pages_no_docsdir(self): prj = self._prj() self._add(prj, "code_config.yaml", self.conf) self._add(prj, "pagesNOT_THE_SAME/index.html", self.html1) sd = SphinxDocs(prj.name) sd.build_all() assert sd.last_build_info()["status"] == "no_doc_dir_found" builder = sd.get_builder(sd.builders[0]) assert builder.raw_content("index.html", {}) is False
def test_pages_no_docsdir(self): prj = self._prj() self._add(prj, 'code_config.yaml', self.conf) self._add(prj, 'pagesNOT_THE_SAME/index.html', self.html1) sd = SphinxDocs(prj.name) sd.build_all() assert sd.last_build_info()['status'] == 'no_doc_dir_found' builder = sd.get_builder(sd.builders[0]) assert builder.raw_content('index.html', {}) is False
def test_use_autodoc_not_configured(self): prj = self._prj() self._add(prj, 'docs/conf.py', self.conf_py) self._add(prj, 'docs/index.rst', self.index_rst) self._add(prj, 'testapi.py', self.api_py) sd = SphinxDocs(prj.name) sd.build_all() builder = sd.get_builder() doc = builder.template_data('', {}) assert "Test C docstring" not in doc['body']
def test_create_with_index_and_doc(self): prj = self._prj() self._add(prj, "code_config.yaml", base_yaml_conf) self._add(prj, "index.rst", base_index_rst) self._add(prj, "doc1.rst", base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() builder = sd.get_builder("docs") doc = builder.template_data("", {}) assert doc["title"] == "Unit testing sphinx docs"
def test_use_autodoc_not_configured(self): prj = self._prj() self._add(prj, 'docs/conf.py', self.conf_py) self._add(prj, 'docs/index.rst', self.index_rst) self._add(prj, 'testapi.py', self.api_py) sd = SphinxDocs(prj.name) sd.build_all() builder = sd.get_builder() doc = builder.template_data('', {}) assert "Test C docstring" not in doc['body']
def test_pages_mode(self): prj = self._prj() self._add(prj, "code_config.yaml", self.conf) self._add(prj, "pages/index.html", self.html1) sd = SphinxDocs(prj.name) assert sd.builders == ["pages"] assert sd.last_build_info() is None sd.build_all() assert sd.last_build_info()["status"] == "success" builder = sd.get_builder(sd.builders[0]) assert builder.raw_content("index.html", {}) == self.html1
def test_pages_mode(self): prj = self._prj() self._add(prj, 'code_config.yaml', self.conf) self._add(prj, 'pages/index.html', self.html1) sd = SphinxDocs(prj.name) assert sd.builders == [self.builder] assert sd.last_build_info() is None sd.build_all() assert sd.last_build_info()['status'] == 'success' builder = sd.get_builder(sd.builders[0]) assert builder.raw_content('index.html', {}) == self.html1
def test_create_with_index_and_doc_and_conf_py(self): conf_content = """rst_epilog = 'Ahhhhhhhhhhhhhhhh la fin' """ prj = self._prj() self._add(prj, 'docs/index.rst', base_index_rst) self._add(prj, 'docs/doc1.rst', base_document1_rst) self._add(prj, 'docs/conf.py', conf_content) sd = SphinxDocs(prj.name) sd.build_all() builder = sd.get_builder() doc = builder.template_data('', {}) assert 'Ahhhhhhhhhhhhhhhh' in doc['body']
def test_pages_mode(self): prj = self._prj() self._add(prj, 'code_config.yaml', self.conf) self._add(prj, 'pages/index.html', self.html1) sd = SphinxDocs(prj.name) assert sd.builders == ['pages'] assert sd.last_build_info() is None sd.build_all() assert sd.last_build_info()['status'] == 'success' builder = sd.get_builder(sd.builders[0]) assert builder.raw_content('index.html', {}) == self.html1
def test_create_with_index_and_doc_and_conf_py(self): conf_content = """rst_epilog = 'Ahhhhhhhhhhhhhhhh la fin' """ prj = self._prj() self._add(prj, 'docs/index.rst', base_index_rst) self._add(prj, 'docs/doc1.rst', base_document1_rst) self._add(prj, 'docs/conf.py', conf_content) sd = SphinxDocs(prj.name) sd.build_all() builder = sd.get_builder() doc = builder.template_data('', {}) assert 'Ahhhhhhhhhhhhhhhh' in doc['body']
def test_create_with_index_and_doc_and_get_again(self): prj = self._prj() self._add(prj, 'code_config.yaml', base_yaml_conf) self._add(prj, 'index.rst', base_index_rst) self._add(prj, 'doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() sd2 = SphinxDocs(prj.name) builder = sd2.get_builder('docs') assert builder.template doc = builder.template_data('', {}) assert doc['title'] == 'Unit testing sphinx docs'
def test_need_rebuild(self): prj = self._prj() self._add(prj, 'docs/index.rst', base_index_rst) sd = SphinxDocs(prj.name) assert sd.need_rebuild() sd.build_all() assert not sd.need_rebuild() self._add(prj, 'docs/doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) # Bad, should not have to refresh object assert sd.need_rebuild() sd.build_all() assert not sd.need_rebuild()
def test_need_rebuild(self): prj = self._prj() self._add(prj, 'docs/index.rst', base_index_rst) sd = SphinxDocs(prj.name) assert sd.need_rebuild() sd.build_all() assert not sd.need_rebuild() self._add(prj, 'docs/doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) # Bad, should not have to refresh object assert sd.need_rebuild() sd.build_all() assert not sd.need_rebuild()
def test_create_with_index_and_doc_and_get_again(self): prj = self._prj() self._add(prj, 'code_config.yaml', base_yaml_conf) self._add(prj, 'index.rst', base_index_rst) self._add(prj, 'doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() sd2 = SphinxDocs(prj.name) builder = sd2.get_builder() assert builder.template doc = builder.template_data('', {}) assert doc['title'] == 'Unit testing sphinx docs'
def test_need_rebuild(self): prj = self._prj() self._add(prj, "code_config.yaml", base_yaml_conf) self._add(prj, "index.rst", base_index_rst) sd = SphinxDocs(prj.name) assert sd.need_rebuild() sd.build_all() assert not sd.need_rebuild() self._add(prj, "doc1.rst", base_document1_rst) sd = SphinxDocs(prj.name) # Bad, should not have to refresh object assert sd.need_rebuild() sd.build_all() assert not sd.need_rebuild()
def test_create_with_index_and_doc(self): prj = self._prj() # self._add(prj, 'code_config.yaml', base_yaml_conf) self._add(prj, 'docs/index.rst', base_index_rst) self._add(prj, 'docs/doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() _el.CodeSearch.index_a_project_docs(prj.id) ds = _el.DocsSearch(prj.id) ret = ds._doc_file_as_dict('docs/doc1.rst', 'docs', 'docs') assert ret['doc_name'] == 'docs' assert ret['url'] == 'docs/rstdocs/doc1/' assert ret['content'] == base_document1_rst assert ret['type'] == 'docs' assert ret['doc_dir'] == 'docs' _el.CodeSearch.delete_a_project_docs(prj.id)
def test_create_with_index_and_doc(self): prj = self._prj() # self._add(prj, 'code_config.yaml', base_yaml_conf) self._add(prj, 'docs/index.rst', base_index_rst) self._add(prj, 'docs/doc1.rst', base_document1_rst) sd = SphinxDocs(prj.name) sd.build_all() _el.CodeSearch.index_a_project_docs(prj.id) ds = _el.DocsSearch(prj.id) ret = ds._doc_file_as_dict('docs/doc1.rst', 'docs', 'docs') assert ret['doc_name'] == 'docs' assert ret['url'] == 'docs/rstdocs/doc1/' assert ret['content'] == base_document1_rst assert ret['type'] == 'docs' assert ret['doc_dir'] == 'docs' _el.CodeSearch.delete_a_project_docs(prj.id)
def sphinx_docs(self, request): user = request.user docs = SphinxDocs(self.proj_name) if request.get_form_var('force_rebuild') == 'mq': sphinx_builds_add(self.proj_name) return request.redirect( '/%s/settings/sphinx_docs' % self.proj_name) if request.get_form_var('force_rebuild') == 'direct': docs.build_all() return request.redirect( '/%s/settings/sphinx_docs' % self.proj_name) tdt = { 'project': CodeDoubanProject.get_by_name(self.proj_name), 'request': request, 'enabled': docs.enabled, 'last_build': docs.last_build_info(), 'user': user, } return st('settings/sphinx_docs.html', **tdt)
def sphinx_docs(self, request): user = request.user docs = SphinxDocs(self.proj_name) if request.get_form_var('force_rebuild') == 'mq': sphinx_builds_add(self.proj_name) return request.redirect('/%s/settings/sphinx_docs' % self.proj_name) if request.get_form_var('force_rebuild') == 'direct': docs.build_all() return request.redirect('/%s/settings/sphinx_docs' % self.proj_name) tdt = { 'project': CodeDoubanProject.get_by_name(self.proj_name), 'request': request, 'enabled': docs.enabled, 'last_build': docs.last_build_info(), 'user': user, } return st('settings/sphinx_docs.html', **tdt)