Coverage for gws-app/gws/lib/font/_test.py: 100%
27 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-16 23:09 +0200
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-16 23:09 +0200
1"""Tests for the font module."""
3from unittest import mock
5import gws
6import gws.lib.font as font
7import gws.test.util as u
10def test_configure():
11 # Test with no directory
12 config = font.Config(dir=None)
13 with mock.patch('gws.lib.font.install_fonts') as mock_install:
14 font.configure(config)
15 mock_install.assert_not_called()
17 # Test with directory
18 config = font.Config(dir="/test/fonts")
19 with mock.patch('gws.lib.font.install_fonts') as mock_install:
20 font.configure(config)
21 mock_install.assert_called_once_with("/test/fonts")
24def test_install_fonts():
25 with mock.patch('gws.lib.osx.run') as mock_run, \
26 mock.patch('gws.lib.osx.find_files', return_value=['/test/fonts/font1.ttf', '/test/fonts/font2.ttf']):
27 font.install_fonts('/test/fonts')
29 # Check mkdir call
30 mock_run.assert_any_call(['mkdir', '-p', '/usr/local/share/fonts'], echo=True)
32 # Check copy calls
33 mock_run.assert_any_call(['cp', '-v', '/test/fonts/font1.ttf', '/usr/local/share/fonts'], echo=True)
34 mock_run.assert_any_call(['cp', '-v', '/test/fonts/font2.ttf', '/usr/local/share/fonts'], echo=True)
36 # Check font cache update
37 mock_run.assert_any_call(['fc-cache', '-fv'], echo=True)
40def test_from_name():
41 # Mock the PIL.ImageFont.truetype function
42 with mock.patch('PIL.ImageFont.truetype') as mock_truetype:
43 mock_font = mock.MagicMock()
44 mock_truetype.return_value = mock_font
46 result = font.from_name("Arial", 12)
48 # Check that truetype was called with correct parameters
49 mock_truetype.assert_called_once_with(font="Arial", size=12)
50 assert result == mock_font