mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Raise a useful error if `theme.conf
` doesn't exist (#11671)
This commit is contained in:
parent
655bd15749
commit
f0c25a0ada
@ -16,6 +16,9 @@ Features added
|
||||
Bugs fixed
|
||||
----------
|
||||
|
||||
* #11668: Raise a useful error when ``theme.conf`` is missing.
|
||||
Patch by Vinay Sajip.
|
||||
|
||||
Testing
|
||||
-------
|
||||
|
||||
|
@ -69,7 +69,10 @@ class Theme:
|
||||
extract_zip(theme_path, self.themedir)
|
||||
|
||||
self.config = configparser.RawConfigParser()
|
||||
self.config.read(path.join(self.themedir, THEMECONF), encoding='utf-8')
|
||||
config_file_path = path.join(self.themedir, THEMECONF)
|
||||
if not os.path.isfile(config_file_path):
|
||||
raise ThemeError(__('theme configuration file %r not found') % config_file_path)
|
||||
self.config.read(config_file_path, encoding='utf-8')
|
||||
|
||||
try:
|
||||
inherit = self.config.get('theme', 'inherit')
|
||||
|
@ -6,7 +6,7 @@ import alabaster
|
||||
import pytest
|
||||
|
||||
import sphinx.builders.html
|
||||
from sphinx.theming import ThemeError
|
||||
from sphinx.theming import Theme, ThemeError
|
||||
|
||||
|
||||
@pytest.mark.sphinx(
|
||||
@ -62,6 +62,13 @@ def test_theme_api(app, status, warning):
|
||||
assert not os.path.exists(themedir)
|
||||
|
||||
|
||||
def test_nonexistent_theme_conf(tmp_path):
|
||||
# Check that error occurs with a non-existent theme.conf
|
||||
# (https://github.com/sphinx-doc/sphinx/issues/11668)
|
||||
with pytest.raises(ThemeError):
|
||||
Theme('dummy', str(tmp_path), None)
|
||||
|
||||
|
||||
@pytest.mark.sphinx(testroot='double-inheriting-theme')
|
||||
def test_double_inheriting_theme(app, status, warning):
|
||||
assert app.builder.theme.name == 'base_theme2'
|
||||
|
Loading…
Reference in New Issue
Block a user