示例#1
0
    def test_get_options(self):
        menu = menus.TrackSearchResults(self.navigator)
        menu.search = Mock()
        menu.search.results.previous_page = True
        menu.search.results.next_page = True
        menu.search.results.offset = 1
        menu.search.results.results = []

        menu.paginating = True
        self.assertEqual(len(menu.get_options()), 0)

        menu.paginating = False
        # Last page, next page
        self.assertEqual(len(menu.get_options()), 2)

        menu.search.results.previous_page = False
        # Only next page
        self.assertEqual(len(menu.get_options()), 1)

        menu.search.results.next_page = False
        self.assertEqual(len(menu.get_options()), 0)

        menu.search.results.results = [utils.Track('foo', 'bar')]
        # Shuffle and the song itself
        self.assertEqual(len(menu.get_options()), 2)
示例#2
0
 def test_resets_paginating(self, patched_search):
     patched_search.loaded_event.wait.return_value = True
     menu = menus.TrackSearchResults(self.navigator)
     menu.paginating = True
     self.assertEqual(menu.get_response(), menu)
     self.assertFalse(menu.paginating)
     patched_search.loaded_event.wait.assert_called_once_with()
示例#3
0
 def test_get_update_cache(self):
     search = 'foobar'
     menu = menus.TrackSearchResults(self.navigator)
     self.assertEqual(len(menu.get_cache()), 0)
     menu.search = search
     menu.update_cache()
     self.assertIn(search, menu.get_cache())
示例#4
0
    def test_returns_different_ui_while_paginating(self, patched_get_ui):
        menu = menus.TrackSearchResults(self.navigator)

        first_one = menu.get_ui()
        menu.paginating = True
        second_one = menu.get_ui()
        self.assertNotEqual(first_one, second_one)
        patched_get_ui.assert_called_once_with()
示例#5
0
    def test_select_song_while_playing(self, patched_self_search):
        patched_self_search.results.results = ['foo']
        self.navigator.player.is_playing.return_value = True

        menu = menus.TrackSearchResults(self.navigator)

        callback = menu.select_song(0)

        self.assertTrue(callable(callback))
        res = callback()
        self.assertIsInstance(res, menus.SongSelectedWhilePlaying)
        self.assertEqual(res.track, 'foo')
示例#6
0
    def test_go_to_from_search(self, patched_cache, patched_search,
                               patched_update):
        patched_cache.return_value = [Mock()]
        patched_search.return_value = Mock()

        menu = menus.TrackSearchResults(self.navigator)
        menu.search = patched_cache.return_value[0]

        callback = menu.go_to(1)
        self.assertTrue(callable(callback))
        self.assertEqual(callback(), menu)
        self.assertEqual(menu.search, patched_search.return_value)
        self.assertTrue(menu.paginating)
        patched_update.assert_called_once_with()
        # Don't check for how it was called, at least not at the moment
        self.assertEqual(patched_search.call_count, 1)
示例#7
0
    def test_go_to_from_cache(self, patched_cache, patched_search,
                              patched_update):
        patched_cache.return_value = [Mock(), Mock()]

        menu = menus.TrackSearchResults(self.navigator)
        menu.search = patched_cache.return_value[0]
        # next_page
        callback = menu.go_to(1)
        self.assertEqual(callback(), menu)
        self.assertEqual(menu.search, patched_cache.return_value[1])
        self.assertTrue(menu.paginating)
        patched_update.assert_not_called()
        patched_search.assert_not_called()

        # previous_page
        callback = menu.go_to(-1)
        self.assertTrue(callable(callback))
        self.assertEqual(callback(), menu)
        self.assertEqual(menu.search, patched_cache.return_value[0])
        self.assertTrue(menu.paginating)
        patched_update.assert_not_called()
        patched_search.assert_not_called()
示例#8
0
    def test_get_res_idx(self, patched_self_search):
        menu = menus.TrackSearchResults(self.navigator)

        for i in range(0, 5, 20):
            patched_self_search.results.offset = i
            self.assertEqual(menu.get_res_idx(0), i + 1)
示例#9
0
 def test_mock_playlist_contains_term_in_search(self):
     menu = menus.TrackSearchResults(self.navigator)
     menu.search = Mock()
     menu.search.results.term = 'foobar'
     self.assertIn('foobar', menu.get_mock_playlist_name())
示例#10
0
 def test_updates_cache_on_init(self, patched_update):
     search = 'foobar'
     menu = menus.TrackSearchResults(self.navigator)
     menu.set_initial_results(search)
     patched_update.assert_called_once_with()