55 lines
2.4 KiB
Python
55 lines
2.4 KiB
Python
# Copyright 2023 (c) Anna Schumaker.
|
|
"""Tests our Gtk Setup."""
|
|
import gi
|
|
import pathlib
|
|
import unittest
|
|
import xfstestsdb.gtk.gsetup
|
|
|
|
|
|
class TestGSetup(unittest.TestCase):
|
|
"""Test our Gtk setup."""
|
|
|
|
def test_require_version(self):
|
|
"""Check that we have called gi.require_version()."""
|
|
self.assertEqual(gi.get_required_version("Adw"), "1")
|
|
|
|
def test_constants(self):
|
|
"""Check that constants are configured correctly."""
|
|
self.assertEqual(xfstestsdb.gtk.gsetup.DEBUG_STR, "-debug")
|
|
self.assertEqual(xfstestsdb.gtk.gsetup.APPLICATION_ID,
|
|
"com.nowheycreamery.xfstestsdb.gtk-debug")
|
|
|
|
@unittest.mock.patch.object(gi.repository.Gdk.Display, "get_default")
|
|
@unittest.mock.patch.object(gi.repository.Gtk.StyleContext,
|
|
"add_provider_for_display")
|
|
def test_add_style(self, mock_add: unittest.mock.Mock,
|
|
mock_get_default: unittest.mock.Mock):
|
|
"""Check that the CSS stylesheet is loaded correctly."""
|
|
gtk_init_py = pathlib.Path(xfstestsdb.gtk.__file__)
|
|
stylesheet = gtk_init_py.parent / "xfstestsdb.css"
|
|
|
|
self.assertEqual(xfstestsdb.gtk.gsetup.CSS_FILE, stylesheet)
|
|
self.assertEqual(xfstestsdb.gtk.gsetup.CSS_PRIORITY,
|
|
gi.repository.Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
|
|
|
|
self.assertIsInstance(xfstestsdb.gtk.gsetup.CSS_PROVIDER,
|
|
gi.repository.Gtk.CssProvider)
|
|
self.assertNotEqual(xfstestsdb.gtk.gsetup.CSS_PROVIDER.to_string(), "")
|
|
|
|
xfstestsdb.gtk.gsetup.add_style()
|
|
mock_add.assert_called_with(mock_get_default.return_value,
|
|
xfstestsdb.gtk.gsetup.CSS_PROVIDER,
|
|
xfstestsdb.gtk.gsetup.CSS_PRIORITY)
|
|
|
|
@unittest.mock.patch("gi.repository.Gio.resources_register")
|
|
def test_resources(self, mock_register: unittest.mock.Mock):
|
|
"""Test that icon resources have been added to the app."""
|
|
gtk_init_py = pathlib.Path(xfstestsdb.gtk.__file__)
|
|
resources = gtk_init_py.parent / "icons" / "xfstestsdb.gresource"
|
|
|
|
self.assertEqual(xfstestsdb.gtk.gsetup.RESOURCE_FILE, resources)
|
|
self.assertEqual(xfstestsdb.gtk.gsetup.RESOURCE_PATH,
|
|
"/com/nowheycreamery/xfstestsdb")
|
|
self.assertIsInstance(xfstestsdb.gtk.gsetup.RESOURCE,
|
|
gi.repository.Gio.Resource)
|