示例#1
0
 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
示例#2
0
 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
示例#3
0
 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
示例#4
0
 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
示例#5
0
    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
示例#6
0
 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
示例#7
0
 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
示例#8
0
    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
示例#9
0
 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
示例#10
0
 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
示例#11
0
 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'
示例#12
0
 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'
示例#13
0
 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'
示例#14
0
 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'
示例#15
0
 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"
示例#16
0
 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
示例#17
0
 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
示例#18
0
 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']
示例#19
0
 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"
示例#20
0
 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']
示例#21
0
 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
示例#22
0
 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
示例#23
0
 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']
示例#24
0
 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
示例#25
0
 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']
示例#26
0
 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'
示例#27
0
 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()
示例#28
0
 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()
示例#29
0
 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'
示例#30
0
 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()
示例#31
0
 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)
示例#32
0
    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)
示例#33
0
 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)
示例#34
0
 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)