70 lines
2.6 KiB
Python
70 lines
2.6 KiB
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
import db
|
|
import unittest
|
|
from gi.repository import Gtk
|
|
from . import footer
|
|
from . import model
|
|
|
|
class TestVisibleTracks(unittest.TestCase):
|
|
def test_init(self):
|
|
visible = footer.VisibleTracks()
|
|
self.assertIsInstance(visible, Gtk.Label)
|
|
self.assertEqual(visible.get_halign(), Gtk.Align.START)
|
|
self.assertTrue(visible.get_hexpand())
|
|
|
|
def test_count(self):
|
|
visible = footer.VisibleTracks()
|
|
visible.set_count(0)
|
|
self.assertEqual(visible.get_text(), "Showing 0 tracks")
|
|
visible.set_count(1)
|
|
self.assertEqual(visible.get_text(), "Showing 1 track")
|
|
visible.set_count(2)
|
|
self.assertEqual(visible.get_text(), "Showing 2 tracks")
|
|
|
|
|
|
class TestRuntime(unittest.TestCase):
|
|
def test_init(self):
|
|
runtime = footer.Runtime()
|
|
self.assertIsInstance(runtime, Gtk.Label)
|
|
self.assertEqual(runtime.get_halign(), Gtk.Align.END)
|
|
self.assertTrue(runtime.get_hexpand())
|
|
|
|
def test_runtime(self):
|
|
runtime = footer.Runtime()
|
|
runtime.set_runtime(0)
|
|
self.assertEqual(runtime.get_text(), "0 seconds")
|
|
runtime.set_runtime(61)
|
|
self.assertEqual(runtime.get_text(), "1 minute, 1 second")
|
|
runtime.set_runtime(3720)
|
|
self.assertEqual(runtime.get_text(), "1 hour, 2 minutes")
|
|
runtime.set_runtime(93600)
|
|
self.assertEqual(runtime.get_text(), "1 day, 2 hours")
|
|
runtime.set_runtime(777600)
|
|
self.assertEqual(runtime.get_text(), "1 week, 2 days")
|
|
runtime.set_runtime(1209600)
|
|
self.assertEqual(runtime.get_text(), "2 weeks")
|
|
|
|
|
|
class TestFooter(unittest.TestCase):
|
|
def test_init(self):
|
|
foot = footer.Footer(model.FilterPlaylistModel())
|
|
self.assertIsInstance(foot, Gtk.Box)
|
|
self.assertIsInstance(foot.visible, footer.VisibleTracks)
|
|
self.assertIsInstance(foot.runtime, footer.Runtime)
|
|
|
|
self.assertEqual(foot.get_orientation(), Gtk.Orientation.HORIZONTAL)
|
|
self.assertEqual(foot.get_margin_start(), 5)
|
|
self.assertEqual(foot.get_margin_end(), 5)
|
|
self.assertEqual(foot.get_first_child(), foot.visible)
|
|
self.assertEqual(foot.visible.get_next_sibling(), foot.runtime)
|
|
|
|
def test_updates(self):
|
|
db.reset()
|
|
filter = model.FilterPlaylistModel()
|
|
foot = footer.Footer(filter)
|
|
filter.set_playlist(db.user.Table.find("Collection"))
|
|
|
|
db.make_fake_track(1, 1, "Test Track 1", "/a/b/c/1.ogg")
|
|
self.assertEqual(foot.visible.get_text(), "Showing 1 track")
|
|
self.assertEqual(foot.runtime.get_text(), "1 second")
|