Использование привязок Python Gtk3 без X11 - PullRequest
1 голос
/ 25 марта 2012

У меня есть небольшое приложение, написанное на python, которое использует привязки Python Gtk3.Часть приложения загружает значки из темы системных значков, например:

def get_icon(name):
    from gi.repository import Gtk
    icon_theme = Gtk.IconTheme()
    if icon_theme.has_icon(name):
        return icon_theme.load_icon("status-red", 32, 0)

Это делает именно то, что я хочу - загружает значок и дает мне экземпляр GdkPixbuf.Pixbuf.

Проблема возникает, когда запускаются мои юнит-тесты.У меня есть тесты, которые тестируют этот код, и все работает нормально, если тесты выполняются на компьютере разработчика.

Однако тесты запускаются автоматически до того, как пакет будет собран (как часть нашего процесса CI), и пакеты приложений будут созданы на автономном сервере.Поэтому мой вопрос: Есть ли способ использовать только класс IconTheme из Gtk3, не требуя запуска X11?

1 Ответ

1 голос
/ 04 апреля 2012

Нет способа использовать gtk +, скомпилированный для X11, без DISPLAY.

Но вы всегда можете запустить testsuite внутри xvfb, X-сервера, использующего виртуальный кадровый буфер, так что вам не нужно запускать с существующего терминала, но вам все равно потребуется X. Это довольно просто;

xvfb-run.sh python testsuite.py
...