lutris/tests/test_dialogs.py

102 lines
3.3 KiB
Python
Raw Normal View History

from unittest import TestCase
from lutris import runners
from lutris.gui.application import Application
2023-01-31 03:25:16 +00:00
from lutris.gui.config.add_game_dialog import AddGameDialog
2023-12-28 23:29:42 +00:00
from lutris.gui.config.game_common import GameDialogCommon
2019-05-17 01:03:38 +00:00
from lutris.gui.views.store import sort_func
from lutris.util.test_config import setup_test_environment
2014-08-12 23:50:25 +00:00
setup_test_environment()
2014-08-18 10:02:35 +00:00
2014-08-12 23:50:25 +00:00
class TestGameDialogCommon(TestCase):
def test_get_runner_liststore(self):
dlg = GameDialogCommon("test", config_level="system")
2015-12-21 19:57:07 +00:00
list_store = dlg._get_runner_liststore()
2024-02-25 05:02:06 +00:00
self.assertTrue(list_store[1][0].startswith(runners.get_installed()[0].human_name))
2015-10-01 10:08:14 +00:00
self.assertEqual(list_store[1][1], runners.get_installed()[0].name)
2014-08-12 23:36:18 +00:00
2014-08-18 10:05:23 +00:00
class TestGameDialog(TestCase):
def setUp(self):
lutris_application = Application()
lutris_window = lutris_application.window
2018-12-21 10:26:14 +00:00
self.dlg = AddGameDialog(lutris_window)
2014-10-12 16:54:51 +00:00
def get_notebook(self):
return self.dlg.vbox.get_children()[0]
def get_viewport(self, index):
2018-10-19 03:36:25 +00:00
children = self.get_notebook().get_children()
try:
scrolled_window = children[index]
except IndexError:
print("No viewport for index %s" % index)
print(children)
raise
2014-10-12 16:54:51 +00:00
viewport = scrolled_window.get_children()[0]
return viewport.get_children()[0]
def get_game_box(self):
return self.get_viewport(1)
2014-08-12 23:36:18 +00:00
def test_dialog(self):
2014-10-12 16:54:51 +00:00
self.assertEqual(self.dlg.notebook.get_current_page(), 0)
2014-08-17 22:30:24 +00:00
2019-05-17 01:03:38 +00:00
class TestSort(TestCase):
class FakeModel(object):
def __init__(self, rows):
self.rows = rows
def get_value(self, row_index, col_name):
return self.rows[row_index].cols.get(col_name)
class FakeRow(object):
def __init__(self, coldict):
self.cols = coldict
def test_sort_strings_with_caps(self):
2024-02-25 05:02:06 +00:00
row1 = self.FakeRow({"name": "Abc"})
row2 = self.FakeRow({"name": "Def"})
2019-05-17 01:03:38 +00:00
model = self.FakeModel([row1, row2])
2024-02-25 05:02:06 +00:00
assert sort_func(model, 0, 1, "name") == -1
2019-05-17 01:03:38 +00:00
def test_sort_strings_with_one_caps(self):
2024-02-25 05:02:06 +00:00
row1 = self.FakeRow({"name": "abc"})
row2 = self.FakeRow({"name": "Def"})
2019-05-17 01:03:38 +00:00
model = self.FakeModel([row1, row2])
2024-02-25 05:02:06 +00:00
assert sort_func(model, 0, 1, "name") == -1
2019-05-17 01:03:38 +00:00
def test_sort_strings_with_no_caps(self):
2024-02-25 05:02:06 +00:00
row1 = self.FakeRow({"name": "abc"})
row2 = self.FakeRow({"name": "def"})
2019-05-17 01:03:38 +00:00
model = self.FakeModel([row1, row2])
2024-02-25 05:02:06 +00:00
assert sort_func(model, 0, 1, "name") == -1
2019-05-17 01:03:38 +00:00
def test_sort_int(self):
2024-02-25 05:02:06 +00:00
row1 = self.FakeRow({"name": 1})
row2 = self.FakeRow({"name": 2})
2019-05-17 01:03:38 +00:00
model = self.FakeModel([row1, row2])
2024-02-25 05:02:06 +00:00
assert sort_func(model, 0, 1, "name") == -1
2019-05-17 01:03:38 +00:00
def test_sort_mismatched_types(self):
2024-02-25 05:02:06 +00:00
row1 = self.FakeRow({"name": "abc"})
row2 = self.FakeRow({"name": 1})
2019-05-17 01:03:38 +00:00
model = self.FakeModel([row1, row2])
with self.assertRaises(TypeError):
2024-02-25 05:02:06 +00:00
assert sort_func(model, 0, 1, "name") == -1
2019-05-17 01:03:38 +00:00
def test_both_none(self):
row1 = self.FakeRow({})
row2 = self.FakeRow({})
model = self.FakeModel([row1, row2])
2024-02-25 05:02:06 +00:00
assert sort_func(model, 0, 1, "name") == 0
2019-05-17 01:03:38 +00:00
def test_one_none(self):
row1 = self.FakeRow({})
2024-02-25 05:02:06 +00:00
row2 = self.FakeRow({"name": "abc"})
2019-05-17 01:03:38 +00:00
model = self.FakeModel([row1, row2])
2024-02-25 05:02:06 +00:00
assert sort_func(model, 0, 1, "name") == -1