def test_get_theme_name(self): builder = MkdocsHTML(build_env=self.build_env, python_env=None) # The default theme is mkdocs but in mkdocs>=1.0, theme is required self.assertEqual(builder.get_theme_name({}), 'mkdocs') # mkdocs<0.17 syntax config = { 'theme': 'readthedocs', } self.assertEqual(builder.get_theme_name(config), 'readthedocs') # mkdocs>=0.17 syntax config = { 'theme': { 'name': 'test_theme', }, } self.assertEqual(builder.get_theme_name(config), 'test_theme') # No theme but just a directory config = { 'theme_dir': '/path/to/mydir', } self.assertEqual(builder.get_theme_name(config), 'mydir') config = { 'theme_dir': '/path/to/mydir/', } self.assertEqual(builder.get_theme_name(config), 'mydir')
def test_get_theme_name_with_feature_flag(self, checkout_path, run): tmpdir = tempfile.mkdtemp() checkout_path.return_value = tmpdir feature = get( Feature, feature_id=Feature.MKDOCS_THEME_RTD, ) feature.projects.add(self.project) python_env = Virtualenv( version=self.version, build_env=self.build_env, config=None, ) builder = MkdocsHTML( build_env=self.build_env, python_env=python_env, ) self.assertEqual(builder.get_theme_name({}), 'readthedocs') with patch('readthedocs.doc_builder.backends.mkdocs.yaml') as mock_yaml: with patch('readthedocs.doc_builder.backends.mkdocs.MkdocsHTML.load_yaml_config') as mock_load_yaml_config: mock_load_yaml_config.return_value = {'site_name': self.project.name} builder.append_conf() mock_yaml.safe_dump.assert_called_once_with( { 'site_name': mock.ANY, 'docs_dir': mock.ANY, 'extra_javascript': mock.ANY, 'extra_css': mock.ANY, 'google_analytics': mock.ANY, 'theme': 'readthedocs', }, mock.ANY, ) mock_yaml.reset_mock() config = { 'theme': 'customtheme', } self.assertEqual(builder.get_theme_name(config), 'customtheme') with patch('readthedocs.doc_builder.backends.mkdocs.MkdocsHTML.load_yaml_config') as mock_load_yaml_config: mock_load_yaml_config.return_value = { 'site_name': self.project.name, 'theme': 'customtheme', } builder.append_conf() mock_yaml.safe_dump.assert_called_once_with( { 'site_name': mock.ANY, 'docs_dir': mock.ANY, 'extra_javascript': mock.ANY, 'extra_css': mock.ANY, 'google_analytics': mock.ANY, 'theme': 'customtheme', }, mock.ANY, )
def test_get_theme_name_with_feature_flag(self, checkout_path, run): tmpdir = tempfile.mkdtemp() checkout_path.return_value = tmpdir feature = get( Feature, feature_id=Feature.MKDOCS_THEME_RTD, ) feature.projects.add(self.project) python_env = Virtualenv( version=self.version, build_env=self.build_env, config=None, ) builder = MkdocsHTML( build_env=self.build_env, python_env=python_env, ) self.assertEqual(builder.get_theme_name({}), 'readthedocs') with patch('readthedocs.doc_builder.backends.mkdocs.yaml') as mock_yaml: with patch('readthedocs.doc_builder.backends.mkdocs.MkdocsHTML.load_yaml_config') as mock_load_yaml_config: mock_load_yaml_config.return_value = {'site_name': self.project.name} builder.append_conf() mock_yaml.safe_dump.assert_called_once_with( { 'site_name': mock.ANY, 'docs_dir': mock.ANY, 'extra_javascript': mock.ANY, 'extra_css': mock.ANY, 'google_analytics': mock.ANY, 'theme': 'readthedocs', }, mock.ANY, ) mock_yaml.reset_mock() config = { 'theme': 'customtheme', } self.assertEqual(builder.get_theme_name(config), 'customtheme') with patch('readthedocs.doc_builder.backends.mkdocs.MkdocsHTML.load_yaml_config') as mock_load_yaml_config: mock_load_yaml_config.return_value = { 'site_name': self.project.name, 'theme': 'customtheme', } builder.append_conf() mock_yaml.safe_dump.assert_called_once_with( { 'site_name': mock.ANY, 'docs_dir': mock.ANY, 'extra_javascript': mock.ANY, 'extra_css': mock.ANY, 'google_analytics': mock.ANY, 'theme': 'customtheme', }, mock.ANY, )
def test_get_theme_name(self, checkout_path): tmpdir = tempfile.mkdtemp() checkout_path.return_value = tmpdir python_env = Virtualenv( version=self.version, build_env=self.build_env, config=None, ) builder = MkdocsHTML( build_env=self.build_env, python_env=python_env, ) # The default theme is mkdocs but in mkdocs>=1.0, theme is required self.assertEqual(builder.get_theme_name({}), 'mkdocs') # mkdocs<0.17 syntax config = { 'theme': 'readthedocs', } self.assertEqual(builder.get_theme_name(config), 'readthedocs') # mkdocs>=0.17 syntax config = { 'theme': { 'name': 'test_theme', }, } self.assertEqual(builder.get_theme_name(config), 'test_theme') # No theme but just a directory config = { 'theme_dir': '/path/to/mydir', } self.assertEqual(builder.get_theme_name(config), 'mydir') config = { 'theme_dir': '/path/to/mydir/', } self.assertEqual(builder.get_theme_name(config), 'mydir')
def test_get_theme_name(self, checkout_path): tmpdir = tempfile.mkdtemp() checkout_path.return_value = tmpdir python_env = Virtualenv( version=self.version, build_env=self.build_env, config=None, ) builder = MkdocsHTML( build_env=self.build_env, python_env=python_env, ) # The default theme is mkdocs but in mkdocs>=1.0, theme is required self.assertEqual(builder.get_theme_name({}), 'mkdocs') # mkdocs<0.17 syntax config = { 'theme': 'readthedocs', } self.assertEqual(builder.get_theme_name(config), 'readthedocs') # mkdocs>=0.17 syntax config = { 'theme': { 'name': 'test_theme', }, } self.assertEqual(builder.get_theme_name(config), 'test_theme') # No theme but just a directory config = { 'theme_dir': '/path/to/mydir', } self.assertEqual(builder.get_theme_name(config), 'mydir') config = { 'theme_dir': '/path/to/mydir/', } self.assertEqual(builder.get_theme_name(config), 'mydir')