lutris/tests/test_dialogs.py

105 lines
3.4 KiB
Python
Raw Normal View History

from unittest import TestCase
from lutris import runners
from lutris.gui.application import Application
from lutris.gui.config.add_game import AddGameDialog
2014-10-12 16:54:51 +00:00
# from lutris import settings
2018-12-21 10:26:14 +00:00
from lutris.gui.config.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):
2021-04-27 05:42:38 +00:00
dlg = GameDialogCommon("test")
2015-12-21 19:57:07 +00:00
list_store = dlg._get_runner_liststore()
2015-09-30 17:48:02 +00:00
self.assertTrue(
2017-03-03 19:13:59 +00:00
list_store[1][0].startswith(runners.get_installed()[0].human_name)
2015-09-30 17:48:02 +00:00
)
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):
row1 = self.FakeRow({'name': 'Abc'})
row2 = self.FakeRow({'name': 'Def'})
model = self.FakeModel([row1, row2])
assert sort_func(model, 0, 1, 'name') == -1
def test_sort_strings_with_one_caps(self):
row1 = self.FakeRow({'name': 'abc'})
row2 = self.FakeRow({'name': 'Def'})
model = self.FakeModel([row1, row2])
assert sort_func(model, 0, 1, 'name') == -1
def test_sort_strings_with_no_caps(self):
row1 = self.FakeRow({'name': 'abc'})
row2 = self.FakeRow({'name': 'def'})
model = self.FakeModel([row1, row2])
assert sort_func(model, 0, 1, 'name') == -1
def test_sort_int(self):
row1 = self.FakeRow({'name': 1})
row2 = self.FakeRow({'name': 2})
model = self.FakeModel([row1, row2])
assert sort_func(model, 0, 1, 'name') == -1
def test_sort_mismatched_types(self):
row1 = self.FakeRow({'name': 'abc'})
row2 = self.FakeRow({'name': 1})
model = self.FakeModel([row1, row2])
with self.assertRaises(TypeError):
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])
assert sort_func(model, 0, 1, 'name') == 0
def test_one_none(self):
row1 = self.FakeRow({})
row2 = self.FakeRow({'name': 'abc'})
model = self.FakeModel([row1, row2])
assert sort_func(model, 0, 1, 'name') == -1