Fix `test_get_filename_for_language` on Windows

This commit is contained in:
Adam Turner 2023-08-12 04:23:56 +01:00
parent 1a47e3a8be
commit 1ea5a434b3
2 changed files with 15 additions and 16 deletions

View File

@ -223,24 +223,24 @@ def format_date(
return "".join(result) return "".join(result)
def get_image_filename_for_language(filename: str, env: BuildEnvironment) -> str: def get_image_filename_for_language(
filename_format = env.config.figure_language_filename filename: str | os.PathLike[str],
d = {} env: BuildEnvironment,
d['root'], d['ext'] = path.splitext(filename) ) -> str:
dirname = path.dirname(d['root']) root, ext = path.splitext(filename)
if dirname and not dirname.endswith(path.sep): dirname = path.dirname(root)
dirname += path.sep
docpath = path.dirname(env.docname) docpath = path.dirname(env.docname)
if docpath and not docpath.endswith(path.sep):
docpath += path.sep
d['path'] = dirname
d['basename'] = path.basename(d['root'])
d['docpath'] = docpath
d['language'] = env.config.language
try: try:
return filename_format.format(**d) return env.config.figure_language_filename.format(
root=root,
ext=ext,
path=dirname and dirname + SEP,
basename=path.basename(root),
docpath=docpath and docpath + SEP,
language=env.config.language,
)
except KeyError as exc: except KeyError as exc:
raise SphinxError('Invalid figure_language_filename: %r' % exc) from exc raise SphinxError(f'Invalid figure_language_filename: {exc!r}') from exc
def search_image_for_language(filename: str, env: BuildEnvironment) -> str: def search_image_for_language(filename: str, env: BuildEnvironment) -> str:

View File

@ -94,7 +94,6 @@ def test_format_date():
assert i18n.format_date(format, date=datet, language='en') == '+0000' assert i18n.format_date(format, date=datet, language='en') == '+0000'
@pytest.mark.xfail(os.name != 'posix', reason="Path separators don't match on windows")
def test_get_filename_for_language(app): def test_get_filename_for_language(app):
app.env.temp_data['docname'] = 'index' app.env.temp_data['docname'] = 'index'