def test_addListItem_should_call_addFolderListItem_if_item_doesnt_have_an_action(self): navigation = BlipTVNavigation() navigation.addFolderListItem = Mock() navigation.addListItem({}, {}) navigation.addFolderListItem.assert_called_with({}, {})
def test_addListItem_should_call_addActionListItem_if_item_has_action(self): navigation = BlipTVNavigation() navigation.addActionListItem = Mock() navigation.addListItem({}, {"action": "some_action"}) navigation.addActionListItem.assert_called_with({}, {"action": "some_action"})
def test_addListItem_should_call_addVideoListItem_if_item_action_is_play_video(self): navigation = BlipTVNavigation() navigation.addVideoListItem = Mock() navigation.addListItem({}, {"action": "play_video"}) navigation.addVideoListItem.assert_called_with({}, {"action": "play_video"}, 0)
def test_listMenu_should_call_list_if_store_in_params(self): sys.argv = ["something", -1, "something_else"] navigation = BlipTVNavigation() navigation.list = Mock() navigation.addListItem = Mock() navigation.listMenu({"path": "/root/some_other_path", "store": "some_store"}) navigation.list.assert_called_with({"path": "/root/some_other_path", "store": "some_store"})
def test_listMenu_should_call_settings_getSetting_to_get_listview(self): sys.argv = ["something", -1, "something_else"] navigation = BlipTVNavigation() navigation.list = Mock() navigation.addListItem = Mock() navigation.listMenu({"path": "/root/some_other_path"}) sys.modules["__main__"].settings.getSetting.assert_called_with("list_view")
def test_listMenu_should_call_xbmc_plugin_end_of_directory_correctly(self): sys.argv = ["something", -1, "something_else"] settings = ["1", "true", "1"] sys.modules["__main__"].settings.getSetting.side_effect = lambda x: settings.pop() navigation = BlipTVNavigation() navigation.list = Mock() navigation.addListItem = Mock() navigation.listMenu({"path": "/root/some_other_path"}) sys.modules["__main__"].xbmcplugin.endOfDirectory.assert_called_with(cacheToDisc=True, handle=-1, succeeded=True)
def test_listMenu_should_call_xbmc_executeBuiltin_correctly_if_list_view_is_set(self): sys.argv = ["something", -1, "something_else"] settings = ["1", "true", "1"] sys.modules["__main__"].settings.getSetting.side_effect = lambda x: settings.pop() navigation = BlipTVNavigation() navigation.list = Mock() navigation.addListItem = Mock() navigation.listMenu({"path": "/root/some_other_path"}) sys.modules["__main__"].xbmc.executebuiltin.assert_called_with('Container.SetViewMode(500)')
def test_listMenu_should_check_if_download_path_is_set_to_decide_if_download_folder_is_visible(self): sys.argv = ["something", -1, "something_else"] list = ["true", "true", "true", "", "true"] sys.modules["__main__"].settings.getSetting.side_effect = lambda x: list.pop() navigation = BlipTVNavigation() navigation.categories = ({"path": "/root/my_first_level/my_second_level1", "feed": "downloads"}, {"path": "/root/my_first_level/my_second_level2", "feed": "downloads"}) navigation.list = Mock() navigation.addListItem = Mock() navigation.listMenu({"path": "/root/my_first_level", "feed": "downloads"}) navigation.addListItem.assert_called_with({'feed': 'downloads', 'path': '/root/my_first_level'}, {'feed': 'downloads', 'path': '/root/my_first_level/my_second_level1'})
def test_listMenu_should_only_list_subfolders_to_a_path(self): sys.argv = ["something", -1, "something_else"] list = ["", "", "", ""] sys.modules["__main__"].settings.getSetting.side_effect = lambda x: list.pop() navigation = BlipTVNavigation() navigation.categories = ({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level"}, {"path": "/root/my_other_first_level"}, {"path": "/root/my_other_first_level/my_other_second_level"}) navigation.list = Mock() navigation.addListItem = Mock() navigation.listMenu({"path": "/root/my_first_level"}) navigation.addListItem.assert_called_with({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level"})
def test_listMenu_should_use_visibility_from_settings_to_decide_if_items_are_displayed(self): sys.argv = ["something", -1, "something_else"] list = ["false", "true", "false", "true"] sys.modules["__main__"].settings.getSetting.side_effect = lambda x: list.pop() navigation = BlipTVNavigation() navigation.categories = ({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level1"}, {"path": "/root/my_first_level/my_second_level2"}, {"path": "/root/my_first_level/my_second_level3"}) navigation.list = Mock() navigation.addListItem = Mock() navigation.listMenu({"path": "/root/my_first_level"}) navigation.addListItem.assert_any_call({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level1"}) navigation.addListItem.assert_any_call({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level3"})
def test_listMenu_should_traverse_menustructure_correctly(self): sys.argv = ["something", -1, "something_else"] sys.modules["__main__"].settings.getSetting.return_value = "true" navigation = BlipTVNavigation() navigation.list = Mock() navigation.addListItem = Mock() navigation.listMenu() args = navigation.addListItem.call_args_list for arg in args: assert(arg[0][1]["path"].replace('/root/', '').find('/') < 0) assert(navigation.addListItem.call_count > 1)
def test_listMenu_should_call_settings_getSetting_to_get_listview_twice(self): sys.argv = ["something", -1, "something_else"] settings = ["0", "0", "true"] sys.modules["__main__"].settings.getSetting.side_effect = lambda x: settings.pop() navigation = BlipTVNavigation() navigation.list = Mock() navigation.addListItem = Mock() navigation.listMenu({"path": "/root/some_other_path"}) sys.modules["__main__"].settings.getSetting.assert_called_with("list_view") counter = 0 for arg in sys.modules["__main__"].settings.getSetting.call_args_list: if arg[0][0] == "list_view": counter += 1 assert(counter == 1)