# 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")