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

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4 

5import os 

6 

7from django.core.exceptions import ValidationError 

8from django.utils.translation import gettext 

9 

10from weblate.fonts.utils import get_font_name 

11 

12 

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