From 0de8089d5931b50f51302eb304ca2f054cd3ee9a Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 31 Aug 2022 11:26:07 -0400 Subject: [PATCH] sidebar: Add the Decade section to the sidebar Signed-off-by: Anna Schumaker --- emmental/sidebar/__init__.py | 7 ++++++- tests/sidebar/test_sidebar.py | 21 ++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/emmental/sidebar/__init__.py b/emmental/sidebar/__init__.py index dcd9acc..d1017cb 100644 --- a/emmental/sidebar/__init__.py +++ b/emmental/sidebar/__init__.py @@ -3,6 +3,7 @@ from gi.repository import GObject from gi.repository import Gtk from . import artist +from . import decade from . import genre from . import playlist from . import section @@ -25,11 +26,13 @@ class Card(Gtk.Box): self._playlists = playlist.Section(self.sql.playlists) self._artists = artist.Section(self.sql.artists, self.sql.albums) self._genres = genre.Section(self.sql.genres) + self._decades = decade.Section(self.sql.decades, self.sql.years) self._group = section.Group(sql) self.append(self._filter) - for sect in [self._playlists, self._artists, self._genres]: + for sect in [self._playlists, self._artists, self._genres, + self._decades]: self.append(sect) self._group.add(sect) @@ -64,6 +67,8 @@ class Card(Gtk.Box): section = self._artists case self.sql.genres: section = self._genres + case self.sql.decades | self.sql.years: + section = self._decades section.active = True section.select_playlist(playlist) diff --git a/tests/sidebar/test_sidebar.py b/tests/sidebar/test_sidebar.py index c0ef0c5..b1ddcc6 100644 --- a/tests/sidebar/test_sidebar.py +++ b/tests/sidebar/test_sidebar.py @@ -81,7 +81,8 @@ class TestSidebar(tests.util.TestCase): self.assertListEqual(self.sidebar._group._sections, [self.sidebar._playlists, self.sidebar._artists, - self.sidebar._genres]) + self.sidebar._genres, + self.sidebar._decades]) def test_sections(self): """Tests sidebar section models.""" @@ -91,6 +92,8 @@ class TestSidebar(tests.util.TestCase): emmental.sidebar.artist.Section) self.assertIsInstance(self.sidebar._genres, emmental.sidebar.genre.Section) + self.assertIsInstance(self.sidebar._decades, + emmental.sidebar.decade.Section) self.assertEqual(self.sidebar._filter.get_next_sibling(), self.sidebar._playlists) @@ -98,11 +101,15 @@ class TestSidebar(tests.util.TestCase): self.sidebar._artists) self.assertEqual(self.sidebar._artists.get_next_sibling(), self.sidebar._genres) + self.assertEqual(self.sidebar._genres.get_next_sibling(), + self.sidebar._decades) self.assertEqual(self.sidebar._playlists.table, self.sql.playlists) self.assertEqual(self.sidebar._artists.table, self.sql.artists) self.assertEqual(self.sidebar._artists.album_table, self.sql.albums) self.assertEqual(self.sidebar._genres.table, self.sql.genres) + self.assertEqual(self.sidebar._decades.table, self.sql.decades) + self.assertEqual(self.sidebar._decades.year_table, self.sql.years) def test_select_playlist(self): """Test setting the active playlist.""" @@ -128,3 +135,15 @@ class TestSidebar(tests.util.TestCase): self.sidebar.select_playlist(genre) self.assertTrue(self.sidebar._genres.active) self.assertEqual(self.sidebar.selected_playlist, genre) + + decade = self.sql.decades.create(1990) + year = self.sql.years.create(1990) + + self.sidebar._decades.select_playlist = unittest.mock.Mock() + for plist in [decade, year]: + self.sidebar._decades.select_playlist.reset_mock() + self.sidebar._decades.active = False + + self.sidebar.select_playlist(plist) + self.assertTrue(self.sidebar._decades.active) + self.sidebar._decades.select_playlist.assert_called_with(plist)