87 lines
3.3 KiB
Python
87 lines
3.3 KiB
Python
# Copyright 2023 (c) Anna Schumaker.
|
|
"""Tests our sidebar test selector."""
|
|
import datetime
|
|
import unittest
|
|
import xfstestsdb.gtk.sidebar
|
|
from gi.repository import Gtk
|
|
|
|
|
|
class TestRunidView(unittest.TestCase):
|
|
"""Test the RunidView class."""
|
|
|
|
def setUp(self):
|
|
"""Set up common variables."""
|
|
self.xfstestsdb = xfstestsdb.Command()
|
|
with unittest.mock.patch("sys.stdout"):
|
|
self.xfstestsdb.run(["new", "/dev/vda2"])
|
|
self.xfstestsdb.run(["new", "/dev/vda1"])
|
|
self.xfstestsdb.run(["new", "/dev/vda1"])
|
|
self.xfstestsdb.run(["new", "/dev/vda3"])
|
|
|
|
self.today = datetime.date.today()
|
|
self.devlist = xfstestsdb.gtk.tree.DateDeviceList(self.xfstestsdb.sql,
|
|
self.today)
|
|
self.view = xfstestsdb.gtk.sidebar.RunidView(self.devlist)
|
|
|
|
def test_init(self):
|
|
"""Test that the RunidView was set up properly."""
|
|
self.assertIsInstance(self.view, Gtk.ScrolledWindow)
|
|
self.assertEqual(self.view.props.vexpand, True)
|
|
|
|
def test_listview(self):
|
|
"""Test that the listview child is set up properly."""
|
|
self.assertIsInstance(self.view._view, Gtk.ListView)
|
|
self.assertIsInstance(self.view._selection, Gtk.SingleSelection)
|
|
self.assertIsInstance(self.view._view.props.factory,
|
|
xfstestsdb.gtk.row.SidebarFactory)
|
|
|
|
self.assertTrue(self.view._view.props.single_click_activate)
|
|
self.assertTrue(self.view._view.has_css_class("navigation-sidebar"))
|
|
self.assertTrue(self.view._view.has_css_class("background"))
|
|
|
|
self.assertEqual(self.view._view.props.model,
|
|
self.view._selection)
|
|
self.assertEqual(self.view.props.child, self.view._view)
|
|
|
|
def test_model_property(self):
|
|
"""Test the model property."""
|
|
self.assertEqual(self.view.model, self.devlist)
|
|
self.assertEqual(self.view._selection.props.model,
|
|
self.devlist.treemodel)
|
|
|
|
self.view.model = None
|
|
self.assertIsNone(self.view._selection.props.model)
|
|
|
|
self.view.model = self.devlist
|
|
self.assertEqual(self.view._selection.props.model,
|
|
self.devlist.treemodel)
|
|
|
|
def test_runid_property(self):
|
|
"""Test the runid property."""
|
|
self.view.model = self.devlist
|
|
self.assertEqual(self.view.runid, 0)
|
|
|
|
self.view._view.emit("activate", 1)
|
|
self.assertEqual(self.view.runid, 2)
|
|
self.view._view.emit("activate", 2)
|
|
self.assertEqual(self.view.runid, 3)
|
|
self.view._view.emit("activate", 4)
|
|
self.assertEqual(self.view.runid, 1)
|
|
self.view._view.emit("activate", 6)
|
|
self.assertEqual(self.view.runid, 4)
|
|
|
|
def test_expand_collapse(self):
|
|
"""Test expanding and collapsing child rows."""
|
|
self.view.model = self.devlist
|
|
|
|
self.assertTrue(self.view._selection[0].get_expanded())
|
|
self.assertEqual(self.view.runid, 0)
|
|
|
|
self.view._view.emit("activate", 0)
|
|
self.assertFalse(self.view._selection[0].get_expanded())
|
|
self.assertEqual(self.view.runid, 0)
|
|
|
|
self.view._view.emit("activate", 0)
|
|
self.assertTrue(self.view._selection[0].get_expanded())
|
|
self.assertEqual(self.view.runid, 2)
|