def test_apiLogin_should_set_oauth_specific_values_on_success(self): patcher = patch("time.time") patcher.start() import time time.time = Mock(return_value=1) sys.modules["__main__"].core._fetchPage.side_effect = [{ "content": '{"expires_in":"12", "access_token":"my_favorite_access_token", "refresh_token":"my_favorite_refresh_token" }' }, { "content": "" }] sys.modules["__main__"].settings.getSetting.return_value = "" sys.modules["__main__"].common.parseDOM.return_value = "" login = YouTubeLogin() login._apiLogin() patcher.stop() sys.modules["__main__"].settings.setSetting.assert_any_call( "oauth2_expires_at", '13') sys.modules["__main__"].settings.setSetting.assert_any_call( "oauth2_access_token", "my_favorite_access_token") sys.modules["__main__"].settings.setSetting.assert_any_call( "oauth2_refresh_token", "my_favorite_refresh_token")
def test_apiLogin_should_call_oauth2_login_url_only_one_time_if_url_fails(self): sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.return_value = "" login = YouTubeLogin() login._apiLogin() assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
def test_apiLogin_should_follow_redirect_if_statewrapper_present(self): sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.side_effect = ["", "","", ["some_code"], "", "", "", ""] login = YouTubeLogin() login._apiLogin() assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
def test_apiLogin_should_request_token_if_code_present(self): dom_values = ["","","",["some_code"],"",""] sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "", y ="",attrs = {},ret = {}: dom_values.pop() login = YouTubeLogin() login._apiLogin() assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
def test_apiLogin_should_request_token_if_code_present(self): sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.side_effect = ["", "","", ["some_code"], "", "", "", ""] login = YouTubeLogin() login._apiLogin() print(repr(sys.modules["__main__"].core._fetchPage.call_count)) assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
def test_apiLogin_should_follow_redirect_if_statewrapper_present(self): dom_values = ["","","",["some_state_wrapper"],["some_new_url"]] sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "", y ="",attrs = {},ret = {}: dom_values.pop() login = YouTubeLogin() login._apiLogin() assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
def test_apiLogin_should_call_fetchPage_with_correct_params(self): sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.return_value = "" login = YouTubeLogin() login._apiLogin() args = sys.modules["__main__"].core._fetchPage.call_args assert(args[0][0].has_key("link"))
def test_apiLogin_should_follow_redirect_if_statewrapper_present(self): dom_values = ["", "", "", ["some_state_wrapper"], ["some_new_url"]] sys.modules["__main__"].core._fetchPage.return_value = {"content": ""} sys.modules[ "__main__"].common.parseDOM.side_effect = lambda x="", y="", attrs={ }, ret={}: dom_values.pop() login = YouTubeLogin() login._apiLogin() assert (sys.modules["__main__"].core._fetchPage.call_count == 2)
def test_apiLogin_should_request_token_if_code_present(self): dom_values = ["", "", "", ["some_code"], "", ""] sys.modules["__main__"].core._fetchPage.return_value = {"content": ""} sys.modules[ "__main__"].common.parseDOM.side_effect = lambda x="", y="", attrs={ }, ret={}: dom_values.pop() login = YouTubeLogin() login._apiLogin() assert (sys.modules["__main__"].core._fetchPage.call_count == 2)
def test_apiLogin_should_search_for_state_wrapper_and_new_url(self): sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.side_effect = ["", "","","","some_state_wrapper","some_new_url"] login = YouTubeLogin() login._apiLogin() args = sys.modules["__main__"].common.parseDOM.call_args assert(args[0] == ("","input")) assert(args[1].has_key("attrs")) assert(args[1]["attrs"].has_key("id")) assert(args[1]["attrs"]["id"] == "code")
def test_apiLogin_should_call_fetchPage_with_correct_params_on_redirect(self): sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.side_effect = ["", ["some_new_url"], ["some_state_wrapper"], "", "", "", ""] login = YouTubeLogin() login._apiLogin() args = sys.modules["__main__"].core._fetchPage.call_args print(repr(args)) assert(args[0][0]["link"] == "some_new_url") assert(args[0][0]["url_data"]["submit_access"] == "true" ) assert(args[0][0]["url_data"]["state_wrapper"] == "some_state_wrapper" )
def test_apiLogin_should_call_fetchPage_with_correct_params_when_fetching_request_token(self): sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.side_effect = ["","",["some_code"],"","",""] login = YouTubeLogin() login._apiLogin() args = sys.modules["__main__"].core._fetchPage.call_args[0][0] assert(args["link"] == "https://accounts.google.com/o/oauth2/token") assert(args.has_key("url_data")) assert(args["url_data"]["code"] == "some_code" ) assert(args["url_data"]["grant_type"] == "authorization_code" )
def test_apiLogin_should_call_fetchPage_with_correct_params_on_redirect(self): dom_values = ["","","",["some_state_wrapper"],["some_new_url"]] sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "", y ="",attrs = {},ret = {}: dom_values.pop() login = YouTubeLogin() login._apiLogin() args = sys.modules["__main__"].core._fetchPage.call_args assert(args[0][0]["link"] == "some_new_url") assert(args[0][0]["no-language-cookie"] == "true") assert(args[0][0]["url_data"]["submit_access"] == "true" ) assert(args[0][0]["url_data"]["state_wrapper"] == "some_state_wrapper" )
def test_apiLogin_should_call_fetchPage_with_correct_params_when_fetching_request_token(self): sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.side_effect = ["", "","", ["some_code"], "", "", "", ""] login = YouTubeLogin() login._apiLogin() args = sys.modules["__main__"].core._fetchPage.call_args[0][0] print(repr(args)) assert(args["link"] == "https://accounts.google.com/o/oauth2/token") assert(args.has_key("url_data")) assert(args["url_data"]["code"] == "some_code" ) assert(args["url_data"]["grant_type"] == "authorization_code" )
def test_apiLogin_should_call_fetchPage_with_correct_params_on_redirect( self): dom_values = ["", "", "", ["some_state_wrapper"], ["some_new_url"]] sys.modules["__main__"].core._fetchPage.return_value = {"content": ""} sys.modules[ "__main__"].common.parseDOM.side_effect = lambda x="", y="", attrs={ }, ret={}: dom_values.pop() login = YouTubeLogin() login._apiLogin() args = sys.modules["__main__"].core._fetchPage.call_args assert (args[0][0]["link"] == "some_new_url") assert (args[0][0]["no-language-cookie"] == "true") assert (args[0][0]["url_data"]["submit_access"] == "true") assert ( args[0][0]["url_data"]["state_wrapper"] == "some_state_wrapper")
def test_apiLogin_should_set_oauth_specific_values_on_success(self): patcher = patch("time.time") patcher.start() import time time.time = Mock(return_value=1) sys.modules["__main__"].core._fetchPage.side_effect = [{"content":'{"expires_in":"12", "access_token":"my_favorite_access_token", "refresh_token":"my_favorite_refresh_token" }'},{"content":""}] sys.modules["__main__"].settings.getSetting.return_value = "" sys.modules["__main__"].common.parseDOM.return_value = "" login = YouTubeLogin() login._apiLogin() patcher.stop() sys.modules["__main__"].settings.setSetting.assert_any_call("oauth2_expires_at", '13') sys.modules["__main__"].settings.setSetting.assert_any_call("oauth2_access_token", "my_favorite_access_token") sys.modules["__main__"].settings.setSetting.assert_any_call("oauth2_refresh_token", "my_favorite_refresh_token")
def test_apiLogin_should_provide_correct_message_and_failure_status_code_on_failure(self): sys.modules["__main__"].core._fetchPage.return_value = {"content":""} sys.modules["__main__"].common.parseDOM.return_value = "" login = YouTubeLogin() result = login._apiLogin() sys.modules["__main__"].language.assert_called_with(30609) assert(result[1] == 303)
def test_authorize_should_call_apiLogin_if_httplogin_succeded(self): login = YouTubeLogin() login._apiLogin = Mock(return_value=("",200)) login._httpLogin = Mock(return_value=("",200)) login.authorize() login._httpLogin.assert_any_call({ "new": "true"}) login._apiLogin.assert_any_call()
def test_apiLogin_should_provide_correct_message_and_success_status_code_on_success(self): fetch_values = [{"content":""},{"content":'{"expires_in":"12", "access_token":"my_favorite_access_token", "refresh_token":"my_favorite_refresh_token" }'}] sys.modules["__main__"].core._fetchPage.side_effect = lambda x: fetch_values.pop() sys.modules["__main__"].settings.getSetting.return_value = "" sys.modules["__main__"].common.parseDOM.return_value = "" login = YouTubeLogin() result = login._apiLogin() sys.modules["__main__"].language.assert_called_with(30030) assert(result[1] == 200)
def test_authorize_should_show_refreshing_folder_message_on_success(self): sys.modules["__main__"].language.side_effect = ["string1", "string2"] login = YouTubeLogin() login._apiLogin = Mock(return_value=("",200)) login._httpLogin = Mock(return_value=("",200)) login.authorize() sys.modules["__main__"].utils.showErrorMessage.assert_called_with("string1","",303) sys.modules["__main__"].language.assert_called_with(30031)
def test_authorize_should_show_error_message_on_api_login_failure(self): sys.modules["__main__"].language.side_effect = ["string1", "string2"] login = YouTubeLogin() login._apiLogin = Mock(return_value=("",500)) login._httpLogin = Mock(return_value=("",200)) login.authorize() sys.modules["__main__"].utils.showErrorMessage.assert_called_with("string1","",500) sys.modules["__main__"].language.assert_called_with(30609)