emmental/tests/nowplaying/test_tags.py

83 lines
3.2 KiB
Python

# Copyright 2022 (c) Anna Schumaker.
"""Tests our TagInfo widget."""
import unittest
import emmental.nowplaying.label
import emmental.nowplaying.tags
from gi.repository import Gtk
class TestTagInfo(unittest.TestCase):
"""Tests the tags.Info widget."""
def setUp(self):
"""Set up common variables."""
self.info = emmental.nowplaying.tags.TagInfo()
def test_init(self):
"""Test that the TagInfo widget is set up correctly."""
self.assertIsInstance(self.info, Gtk.ScrolledWindow)
self.assertIsInstance(self.info.get_child(), Gtk.Viewport)
self.assertIsInstance(self.info._box, Gtk.Box)
self.assertTrue(self.info.get_hexpand())
self.assertTrue(self.info.get_vexpand())
self.assertEqual(self.info._saved_height, 0)
self.assertIsNone(self.info._idle_id)
self.assertEqual(self.info.get_child().get_child(), self.info._box)
self.assertEqual(self.info._box.get_orientation(),
Gtk.Orientation.VERTICAL)
self.assertEqual(self.info._box.get_spacing(), 0)
def test_title(self):
"""Test the title label."""
self.assertIsInstance(self.info._title,
emmental.nowplaying.label.Label)
self.assertEqual(self.info._box.get_first_child(), self.info._title)
self.assertEqual(self.info.title, "")
self.assertEqual(self.info._title.prefix, "")
self.info.title = "Test Title"
self.assertEqual(self.info.title, "Test Title")
self.assertEqual(self.info._title.get_text(), "Test Title")
def test_album(self):
"""Test the album label."""
self.assertIsInstance(self.info._album,
emmental.nowplaying.label.Label)
self.assertEqual(self.info._title.get_next_sibling(),
self.info._album)
self.assertEqual(self.info.album, "")
self.assertEqual(self.info._album.prefix, "from ")
self.info.album = "Test Album"
self.assertEqual(self.info.album, "Test Album")
self.assertEqual(self.info._album.get_text(), "from Test Album")
def test_artist(self):
"""Test the artist label."""
self.assertIsInstance(self.info._artist,
emmental.nowplaying.label.ArtistLabel)
self.assertEqual(self.info._album.get_next_sibling(),
self.info._artist)
self.assertEqual(self.info.artist, "")
self.assertEqual(self.info._artist.prefix, "by ")
self.assertTrue(self.info.prefer_artist)
self.info.artist = "Test Artist"
self.assertEqual(self.info.artist, "Test Artist")
self.assertEqual(self.info._artist.artist, "Test Artist")
self.info.album_artist = "Test Album Artist"
self.assertEqual(self.info.album_artist, "Test Album Artist")
self.assertEqual(self.info._artist.album_artist, "Test Album Artist")
self.info.prefer_artist = False
self.assertFalse(self.info._artist.prefer_artist)
self.assertEqual(self.info._artist.get_text(), "by Test Album Artist")
self.info._artist.prefer_artist = True
self.assertTrue(self.info.prefer_artist)
self.assertEqual(self.info._artist.get_text(), "by Test Artist")