Coverage for app/venv/lib/python3.14/site-packages/weblate/fonts/validators.py: 26%
15 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
1# Copyright © Michal Čihař <michal@weblate.org>
2#
3# SPDX-License-Identifier: GPL-3.0-or-later
5import os
7from django.core.exceptions import ValidationError
8from django.utils.translation import gettext
10from weblate.fonts.utils import get_font_name
13def validate_font(value):
14 """Validate font upload based on extension."""
15 ext = os.path.splitext(value.name)[1]
16 if ext.lower() not in {".ttf", ".otf"}:
17 raise ValidationError(gettext("Unsupported file format."))
18 if not value:
19 return value
20 try:
21 get_font_name(value)
22 except OSError as error:
23 raise ValidationError(gettext("Unsupported file format.")) from error
24 return value