def test_get_sphinx_apidoc_command_enabled_with_pep420(self):
        sphinx_mock = Mock()
        sys.modules["sphinx"] = sphinx_mock

        try:
            sphinx_mock.version_info = (1, 5, 3, 4, 5)

            self.project.set_property("sphinx_run_apidoc", True)
            self.project.set_property("dir_target", "dir_target")
            self.project.set_property("dir_source_main_python", "dir_source")
            self.project.set_property("sphinx_project_name", "project_name")

            self.assertEqual(
                get_sphinx_apidoc_command(self.project, self.reactor), [
                    ANY, "-H", "project_name", "-o",
                    np(jp(self.project.basedir,
                          "dir_target/sphinx_pyb/apidoc")),
                    np(jp(self.project.basedir, "dir_source"))
                ])
            self.reactor.pybuilder_venv.version = (3, 5, 6, 'final', 0)
            self.assertEqual(
                get_sphinx_apidoc_command(self.project, self.reactor), [
                    ANY, "-H", "project_name", "--implicit-namespaces", "-o",
                    np(jp(self.project.basedir,
                          "dir_target/sphinx_pyb/apidoc")),
                    np(jp(self.project.basedir, "dir_source"))
                ])
        finally:
            del sys.modules["sphinx"]
Example #2
0
    def test_get_sphinx_apidoc_command_enabled_with_pep420(self):
        sphinx_mock = Mock()
        sys.modules["sphinx"] = sphinx_mock

        try:
            sphinx_mock.version_info = (1, 5, 3, 4, 5)

            self.project.set_property("sphinx_run_apidoc", True)
            self.project.set_property("dir_target", "dir_target")
            self.project.set_property("dir_source_main_python", "dir_source")
            self.project.set_property("sphinx_project_name", "project_name")

            self.assertEqual(get_sphinx_apidoc_command(self.project),
                             ['sphinx.apidoc',
                              '-H',
                              'project_name',
                              '--implicit-namespaces',
                              '-o',
                              'basedir/dir_target/sphinx_pyb/apidoc',
                              'basedir/dir_source'
                              ] if sys.version_info[:3] >= (3, 3) else
                             ['sphinx.apidoc',
                              '-H',
                              'project_name',
                              '-o',
                              'basedir/dir_target/sphinx_pyb/apidoc',
                              'basedir/dir_source'
                              ]
                             )
        finally:
            del sys.modules["sphinx"]
    def test_sphinx_generate(self,
                             execute_command,
                             mkdir,
                             exists,
                             rmtree,
                             open
                             ):
        execute_command.return_value = 0
        exists.return_value = True

        sphinx_mock = Mock()
        sys.modules["sphinx"] = sphinx_mock

        try:
            sphinx_mock.version_info = (1, 5, 3, 4, 5)

            self.project.set_property("sphinx_source_dir", "sphinx_source_dir")
            self.project.set_property("sphinx_config_path", "sphinx_config_path")
            self.project.set_property("sphinx_output_dir", "sphinx_output_dir")
            self.project.set_property("dir_target", "dir_target")
            self.project.set_property("dir_source_main_python", "dir_source")
            self.project.set_property("sphinx_project_name", "project_name")
            self.project.set_property("sphinx_project_conf", {"a": 1, "b": "foo"})
            self.project.set_property("sphinx_run_apidoc", True)
            self.project.set_property("sphinx_doc_builder", ['JSONx', 'pdf'])

            sphinx_generate(self.project, Mock())
        finally:
            del sys.modules["sphinx"]

        exists.assert_called_with(nc("basedir/dir_target/sphinx_pyb/apidoc"))
        rmtree.assert_called_with(nc("basedir/dir_target/sphinx_pyb/apidoc"))
        mkdir.assert_called_with(nc("basedir/dir_target/sphinx_pyb/apidoc"))
        print(open().__enter__().write.call_args_list)
        open().__enter__().write.assert_has_calls([call("a = 1\n"), call("b = 'foo'\n"), call(
            "\nimport sys\nsys.path.insert(0, %r)\n" % nc("basedir/dir_source"))], any_order=True)
        execute_command.assert_has_calls([
            call([sys.executable, '-m', 'sphinx.apidoc', '-H', 'project_name', '-o',
                  nc('basedir/dir_target/sphinx_pyb/apidoc'), nc('basedir/dir_source')]
                 if sys.version_info[:2] < (3, 3) else
                 [sys.executable, '-m', 'sphinx.apidoc', '-H', 'project_name', '--implicit-namespaces', '-o',
                 nc('basedir/dir_target/sphinx_pyb/apidoc'), nc('basedir/dir_source')],
                 nc('basedir/dir_target/reports/sphinx-apidoc'), shell=False),
            call([sys.executable, '-m', 'sphinx', '-b', 'JSONx', nc('basedir/sphinx_config_path'),
                 nc('basedir/sphinx_output_dir/JSONx')],
                 nc('basedir/dir_target/reports/sphinx_JSONx'), shell=False),
            call([sys.executable, '-m', 'sphinx', '-b', 'pdf', nc('basedir/sphinx_config_path'),
                 nc('basedir/sphinx_output_dir/pdf')],
                 nc('basedir/dir_target/reports/sphinx_pdf'), shell=False)])
Example #4
0
    def test_get_sphinx_apidoc_command_enabled(self):
        sphinx_mock = Mock()
        sys.modules["sphinx"] = sphinx_mock
        try:
            sphinx_mock.version_info = (1, 2, 3, 4, 5)

            self.project.set_property("sphinx_run_apidoc", True)
            self.project.set_property("dir_target", "dir_target")
            self.project.set_property("dir_source_main_python", "dir_source")
            self.project.set_property("sphinx_project_name", "project_name")

            self.assertEqual(get_sphinx_apidoc_command(self.project), [
                'sphinx.apidoc', '-H', 'project_name', '-o',
                'basedir/dir_target/sphinx_pyb/apidoc', 'basedir/dir_source'
            ])
        finally:
            del sys.modules["sphinx"]
    def test_get_sphinx_apidoc_command_enabled(self):
        sphinx_mock = Mock()
        sys.modules["sphinx"] = sphinx_mock

        try:
            sphinx_mock.version_info = (1, 2, 3, 4, 5)

            self.project.set_property("sphinx_run_apidoc", True)
            self.project.set_property("dir_target", "dir_target")
            self.project.set_property("dir_source_main_python", "dir_source")
            self.project.set_property("sphinx_project_name", "project_name")

            self.assertEqual(
                get_sphinx_apidoc_command(self.project, self.reactor), [
                    ANY, "-H", "project_name", "-o",
                    np(jp(self.project.basedir,
                          "dir_target/sphinx_pyb/apidoc")),
                    np(jp(self.project.basedir, "dir_source"))
                ])
        finally:
            del sys.modules["sphinx"]
    def test_get_sphinx_apidoc_command_enabled(self):
        sphinx_mock = Mock()
        sys.modules["sphinx"] = sphinx_mock
        try:
            sphinx_mock.version_info = (1, 2, 3, 4, 5)

            self.project.set_property("sphinx_run_apidoc", True)
            self.project.set_property("dir_target", "dir_target")
            self.project.set_property("dir_source_main_python", "dir_source")
            self.project.set_property("sphinx_project_name", "project_name")

            self.assertEqual(get_sphinx_apidoc_command(self.project),
                             ['sphinx.apidoc',
                              '-H',
                              'project_name',
                              '-o',
                              nc('basedir/dir_target/sphinx_pyb/apidoc'),
                              nc('basedir/dir_source')
                              ]
                             )
        finally:
            del sys.modules["sphinx"]
Example #7
0
    def test_get_sphinx_apidoc_command_enabled_with_pep420(self):
        sphinx_mock = Mock()
        sys.modules["sphinx"] = sphinx_mock

        try:
            sphinx_mock.version_info = (1, 5, 3, 4, 5)

            self.project.set_property("sphinx_run_apidoc", True)
            self.project.set_property("dir_target", "dir_target")
            self.project.set_property("dir_source_main_python", "dir_source")
            self.project.set_property("sphinx_project_name", "project_name")

            self.assertEqual(get_sphinx_apidoc_command(self.project), [
                'sphinx.apidoc', '-H', 'project_name', '--implicit-namespaces',
                '-o',
                nc('basedir/dir_target/sphinx_pyb/apidoc'),
                nc('basedir/dir_source')
            ] if sys.version_info[:3] >= (3, 3) else [
                'sphinx.apidoc', '-H', 'project_name', '-o',
                nc('basedir/dir_target/sphinx_pyb/apidoc'),
                nc('basedir/dir_source')
            ])
        finally:
            del sys.modules["sphinx"]
Example #8
0
    def test_sphinx_generate(self, execute_command, mkdir, exists, rmtree,
                             open):
        execute_command.return_value = 0
        exists.return_value = True

        sphinx_mock = Mock()
        sys.modules["sphinx"] = sphinx_mock

        try:
            sphinx_mock.version_info = (1, 5, 3, 4, 5)

            self.project.set_property("sphinx_source_dir", "sphinx_source_dir")
            self.project.set_property("sphinx_config_path",
                                      "sphinx_config_path")
            self.project.set_property("sphinx_output_dir", "sphinx_output_dir")
            self.project.set_property("dir_target", "dir_target")
            self.project.set_property("dir_source_main_python", "dir_source")
            self.project.set_property("sphinx_project_name", "project_name")
            self.project.set_property("sphinx_project_conf", {
                "a": 1,
                "b": "foo"
            })
            self.project.set_property("sphinx_run_apidoc", True)
            self.project.set_property("sphinx_doc_builder", ['JSONx', 'pdf'])

            sphinx_generate(self.project, Mock())
        finally:
            del sys.modules["sphinx"]

        exists.assert_called_with("basedir/dir_target/sphinx_pyb/apidoc")
        rmtree.assert_called_with("basedir/dir_target/sphinx_pyb/apidoc")
        mkdir.assert_called_with("basedir/dir_target/sphinx_pyb/apidoc")
        open().__enter__().write.assert_has_calls([
            call("a = 1\n"),
            call("b = 'foo'\n"),
            call("\nimport sys\nsys.path.insert(0, 'basedir/dir_source')\n")
        ],
                                                  any_order=True)
        execute_command.assert_has_calls([
            call([
                sys.executable, '-m', 'sphinx.apidoc', '-H', 'project_name',
                '-o', 'basedir/dir_target/sphinx_pyb/apidoc',
                'basedir/dir_source'
            ] if sys.version_info[:2] < (3, 3) else [
                sys.executable, '-m', 'sphinx.apidoc', '-H', 'project_name',
                '--implicit-namespaces', '-o',
                'basedir/dir_target/sphinx_pyb/apidoc', 'basedir/dir_source'
            ],
                 'basedir/dir_target/reports/sphinx-apidoc',
                 shell=False),
            call([
                sys.executable, '-m', 'sphinx', '-b', 'JSONx',
                'basedir/sphinx_config_path', 'basedir/sphinx_output_dir/JSONx'
            ],
                 'basedir/dir_target/reports/sphinx_JSONx',
                 shell=False),
            call([
                sys.executable, '-m', 'sphinx', '-b', 'pdf',
                'basedir/sphinx_config_path', 'basedir/sphinx_output_dir/pdf'
            ],
                 'basedir/dir_target/reports/sphinx_pdf',
                 shell=False)
        ])
    def test_sphinx_generate(self, mkdir, exists, rmtree, open):
        exists.return_value = True

        sphinx_mock = Mock()
        sys.modules["sphinx"] = sphinx_mock

        try:
            sphinx_mock.version_info = (1, 5, 3, 4, 5)

            self.project.set_property("sphinx_source_dir", "sphinx_source_dir")
            self.project.set_property("sphinx_config_path",
                                      "sphinx_config_path")
            self.project.set_property("sphinx_output_dir", "sphinx_output_dir")
            self.project.set_property("dir_target", "dir_target")
            self.project.set_property("dir_source_main_python", "dir_source")
            self.project.set_property("sphinx_project_name", "project_name")
            self.project.set_property("sphinx_project_conf", {
                "a": 1,
                "b": "foo"
            })
            self.project.set_property("sphinx_run_apidoc", True)
            self.project.set_property("sphinx_doc_builder", ["JSONx", "pdf"])

            sphinx_generate(self.project, Mock(), self.reactor)
        finally:
            del sys.modules["sphinx"]

        exists.assert_called_with(
            np(jp(self.project.basedir, "dir_target/sphinx_pyb/apidoc")))
        rmtree.assert_called_with(
            np(jp(self.project.basedir, "dir_target/sphinx_pyb/apidoc")))
        mkdir.assert_called_with(
            np(jp(self.project.basedir, "dir_target/sphinx_pyb/apidoc")))

        open().__enter__().write.assert_has_calls([
            call("a = 1\n"),
            call("b = 'foo'\n"),
            call("\nimport sys\nsys.path.insert(0, %r)\n" %
                 np(jp(self.project.basedir, "dir_source")))
        ],
                                                  any_order=True)
        self.pyb_env.execute_command.assert_has_calls([
            call(self.reactor.pybuilder_venv.executable + [
                "-c", ANY, "-H", "project_name", "-o",
                np(jp(self.project.basedir, "dir_target/sphinx_pyb/apidoc")),
                np(jp(self.project.basedir, "dir_source"))
            ],
                 np(
                     jp(self.project.basedir,
                        "dir_target/reports/sphinx-apidoc")),
                 shell=False),
            call(self.reactor.pybuilder_venv.executable + [
                "-c", ANY, "-b", "JSONx",
                np(jp(self.project.basedir, "sphinx_config_path")),
                np(jp(self.project.basedir, "sphinx_output_dir/JSONx"))
            ],
                 np(jp(self.project.basedir,
                       "dir_target/reports/sphinx_JSONx")),
                 shell=False),
            call(self.reactor.pybuilder_venv.executable + [
                "-c", ANY, "-b", "pdf",
                np(jp(self.project.basedir, "sphinx_config_path")),
                np(jp(self.project.basedir, "sphinx_output_dir/pdf"))
            ],
                 np(jp(self.project.basedir, "dir_target/reports/sphinx_pdf")),
                 shell=False)
        ])