emmental/tests/tracklist/test_footer.py

89 lines
3.4 KiB
Python

# Copyright 2022 (c) Anna Schumaker.
"""Tests our Tracklist Footer."""
import unittest
import emmental.tracklist.footer
from gi.repository import Pango
from gi.repository import Gtk
class TestFooter(unittest.TestCase):
"""Test the Tracklist Footer."""
def setUp(self):
"""Set up common variables."""
self.footer = emmental.tracklist.footer.Footer()
def test_init(self):
"""Test that the footer is initialized properly."""
self.assertIsInstance(self.footer, Gtk.CenterBox)
self.assertTrue(self.footer.has_css_class("dim-label"))
def test_count(self):
"""Test the count property."""
self.assertIsInstance(self.footer._count, Gtk.Label)
self.assertEqual(self.footer._count.get_xalign(), 0.0)
self.assertEqual(self.footer.get_start_widget(), self.footer._count)
self.assertEqual(self.footer._count.get_ellipsize(),
Pango.EllipsizeMode.START)
self.assertEqual(self.footer.count, 0)
self.assertEqual(self.footer._count.get_text(), "Showing 0 tracks")
self.footer.count = 1
self.assertEqual(self.footer._count.get_text(), "Showing 1 track")
self.footer.count = 2
self.assertEqual(self.footer._count.get_text(), "Showing 2 tracks")
def test_selected(self):
"""Test the selected property."""
self.assertIsInstance(self.footer._selected, Gtk.Label)
self.assertEqual(self.footer._selected.get_xalign(), 0.5)
self.assertEqual(self.footer.get_center_widget(),
self.footer._selected)
self.assertEqual(self.footer._selected.get_ellipsize(),
Pango.EllipsizeMode.MIDDLE)
self.assertEqual(self.footer.selected, 0)
self.assertEqual(self.footer._selected.get_text(), "")
self.footer.selected = 1
self.assertEqual(self.footer._selected.get_text(), "1 track selected")
self.footer.selected = 2
self.assertEqual(self.footer._selected.get_text(), "2 tracks selected")
self.footer.selected = 0
self.assertEqual(self.footer._selected.get_text(), "")
def test_runtime(self):
"""Test the runtime property."""
self.assertIsInstance(self.footer._runtime, Gtk.Label)
self.assertEqual(self.footer._runtime.get_xalign(), 1.0)
self.assertEqual(self.footer.get_end_widget(), self.footer._runtime)
self.assertEqual(self.footer._runtime.get_ellipsize(),
Pango.EllipsizeMode.END)
self.assertEqual(self.footer.runtime, 0.0)
self.assertEqual(self.footer._runtime.get_text(),
"0 seconds")
self.footer.runtime = 1.2
self.assertEqual(self.footer._runtime.get_text(),
"1 second")
self.footer.runtime = 65
self.assertEqual(self.footer._runtime.get_text(),
"1 minute, 5 seconds")
self.footer.runtime = 3720
self.assertEqual(self.footer._runtime.get_text(),
"1 hour, 2 minutes")
self.footer.runtime = 93600
self.assertEqual(self.footer._runtime.get_text(),
"1 day, 2 hours")
self.footer.runtime = 777600
self.assertEqual(self.footer._runtime.get_text(),
"1 week, 2 days")
self.footer.runtime = 1209600
self.assertEqual(self.footer._runtime.get_text(),
"2 weeks")