64 lines
2.5 KiB
Python
64 lines
2.5 KiB
Python
# Copyright 2022 (c) Anna Schumaker.
|
|
"""Tests our decade / year section and tree."""
|
|
import emmental.sidebar.decade
|
|
import tests.util
|
|
import unittest.mock
|
|
from gi.repository import Gtk
|
|
|
|
|
|
class TestDecade(tests.util.TestCase):
|
|
"""Test our Decade section."""
|
|
|
|
def setUp(self):
|
|
"""Set up common variables."""
|
|
super().setUp()
|
|
self.decades = emmental.sidebar.decade.Section(self.sql.decades,
|
|
self.sql.years)
|
|
|
|
def test_init(self):
|
|
"""Test that the decade section is set up correctly."""
|
|
self.assertIsInstance(self.decades, emmental.sidebar.section.Section)
|
|
self.assertEqual(self.decades._factory.row_type,
|
|
emmental.sidebar.decade.DecadeRow)
|
|
|
|
self.assertEqual(self.decades.table, self.sql.decades)
|
|
self.assertEqual(self.decades.year_table, self.sql.years)
|
|
self.assertEqual(self.decades.icon_name, "year-alt")
|
|
self.assertEqual(self.decades.title, "Decades & Years")
|
|
|
|
def test_subtitle(self):
|
|
"""Test that the subtitle property is set properly."""
|
|
self.assertEqual(self.decades.subtitle, "0 decades, 0 years")
|
|
self.sql.decades.create(1980)
|
|
self.assertEqual(self.decades.subtitle, "1 decade, 0 years")
|
|
self.sql.years.create(1985)
|
|
self.assertEqual(self.decades.subtitle, "1 decade, 1 year")
|
|
self.sql.years.create(1988)
|
|
self.assertEqual(self.decades.subtitle, "1 decade, 2 years")
|
|
self.sql.decades.create(1990)
|
|
self.assertEqual(self.decades.subtitle, "2 decades, 2 years")
|
|
|
|
def test_decade_row(self):
|
|
"""Test the decaderow widget."""
|
|
treeitem = Gtk.TreeListRow()
|
|
treeitem.get_item = unittest.mock.Mock()
|
|
listitem = Gtk.ListItem()
|
|
listitem.get_item = unittest.mock.Mock(return_value=treeitem)
|
|
|
|
treeitem.get_item.return_value = self.sql.decades.create(1980)
|
|
row = emmental.sidebar.decade.DecadeRow(listitem)
|
|
self.assertIsInstance(row, emmental.sidebar.row.TreeRow)
|
|
self.assertIsInstance(row.child, emmental.sidebar.row.Row)
|
|
self.assertTrue(row.indented)
|
|
|
|
row.bind()
|
|
self.assertEqual(row.child.name, "The 1980s")
|
|
self.assertEqual(row.child.year, 1980)
|
|
row.unbind()
|
|
|
|
treeitem.get_item.return_value = self.sql.years.create(1988)
|
|
row.bind()
|
|
self.assertEqual(row.child.name, "1988")
|
|
self.assertEqual(row.child.year, 1988)
|
|
row.unbind()
|