Bug 50821 - Нет проверки на наличие стилей шрифтов: функция self.query неверно распознаёт стили (pygame)
Summary: Нет проверки на наличие стилей шрифтов: функция self.query неверно распозна...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: python3-module-pygame (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Grigory Ustinov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-07-04 16:42 MSK by Tatyana Gagina
Modified: 2024-07-08 17:34 MSK (History)
2 users (show)

See Also:


Attachments
error.log (2.71 KB, text/x-log)
2024-07-04 16:42 MSK, Tatyana Gagina
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tatyana Gagina 2024-07-04 16:42:51 MSK
Created attachment 16371 [details]
error.log

Стенды, обновлённые до Sisyphus:
ALT Workstation K x86-64
ALT Workstation x86-64
ALT Education KDE/XFCE x86-64

Версия: python3-module-pygame-2.5.2-alt1

Шаги: 
1. Установить пакет:
# apt-get install -y  python3-module-pygame

2. Запустить тест ftfont_test.py в графической сессии::
# cd /usr/lib64/python3/site-packages/pygame/tests/ && python3 ./ftfont_test.py

3. Проверить открытие окон с шрифтами, после закрывать каждое.

Результат: по завершению теста ошибка (полный вывод во вложении error.log):
FAIL: test_underline (__main__.FtVisualTests.test_underline)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib64/python3/site-packages/pygame/tests/font_test.py", line 728, in test_underline
    self.assertTrue(self.query(underline=True))
AssertionError: False is not true

----------------------------------------------------------------------
Ran 56 tests in 28.930s

FAILED (failures=6)

Детали: в содержимом самого файла /usr/lib64/python3/site-packages/pygame/tests/ftfont_test.py нет функции для проверки на наличие курсива/другого стиля:
import sys
import os
import unittest
from pygame.tests import font_test

import pygame.ftfont

font_test.pygame_font = pygame.ftfont

for name in dir(font_test):
    obj = getattr(font_test, name)
    if isinstance(obj, type) and issubclass(obj, unittest.TestCase):  # conditional and
        new_name = f"Ft{name}"
        globals()[new_name] = type(new_name, (obj,), {})

if __name__ == "__main__":
                                                      

Workaroud (как вариант): 
def query(self, italic=False, bold=False):
# поддерживает ли шрифт заданный стиль
if italic:
    return self.font.get_italic() == True  # проверка включен ли  курсив

Однако и по остальным шрифтам тоже нет подобных проверок, что и вызывает данную ошибку (см. в том же вложении error.log) FAIL:
test_underline
test_italic_underline
test_italic
test_bold_antialiase
test_bold
test_antialiase


Проверялось на p10, ошибка воспроизводится.
Версия: python3-module-pygame-2.0.1-alt1
Comment 1 Repository Robot 2024-07-08 17:34:46 MSK
python3-module-pygame-2.6.0-alt1 -> sisyphus:

 Fri Jul 05 2024 Grigory Ustinov <grenka@altlinux> 2.6.0-alt1
 - Automatically updated to 2.6.0.
 - Built with check (Closes: #50821, #50833, #50834, #50836, #50838, #50839).