def test_httpLogin_should_call_fillUserPin_if_2factor_login_needs_smsUserPin(
            self):
        sys.modules["__main__"].core._findErrors.return_value = False
        page_values = [{
            "content": " captcha",
            "status": 200,
            "location": "here"
        }, {
            "new_url": "http://www.mock.com/",
            "content": "something,smsUserPin,somethingElse",
            "status": 200,
            "location": "here"
        }]
        sys.modules[
            "__main__"].core._fetchPage.side_effect = lambda x: page_values.pop(
            )
        sys.modules["__main__"].settings.getSetting.return_value = "smokey"
        dom_values = [["Login"], [], [], [], []]
        sys.modules[
            "__main__"].common.parseDOM.side_effect = lambda x="", y="", attrs={
            }, ret="": dom_values.pop()

        login = YouTubeLogin()
        login._fillUserPin = Mock()
        login._fillUserPin.return_value = "123456"

        result = login._httpLogin({"new": "true"})

        assert (sys.modules["__main__"].core._fetchPage.call_count == 2)
        login._fillUserPin.assert_called_with(
            "something,smsUserPin,somethingElse")
    def test_httpLogin_should_call_fetchPage_with_proper_redirect_url(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        dom_values = [
            "", "", "", "", "", "", "", ["'someURL'"], "", "", ""
        ]
        sys.modules["__main__"].core._fetchPage.return_value = {
            "content": "somePage",
            "status": 200,
            "location": "here"
        }
        sys.modules["__main__"].settings.getSetting.return_value = "smokey"
        sys.modules[
            "__main__"].common.parseDOM.side_effect = lambda x="", y="", attrs={
            }, ret="": dom_values.pop()
        login = YouTubeLogin()
        login._fillLoginInfo = Mock()
        login._fillLoginInfo.return_value = ("some_galx_value", {
            "some_key": "some_value"
        })

        result = login._httpLogin({"new": "true"})

        assert (sys.modules["__main__"].core._fetchPage.call_count == 2)
        sys.modules["__main__"].core._fetchPage.assert_called_with({
            'referer':
            'here',
            'link':
            'someURL',
            'no-language-cookie':
            'true'
        })
    def test_httpLogin_should_search_fetchPage_result_to_check_for_2factor_login(
            self):
        sys.modules["__main__"].core._findErrors.return_value = False
        dummy_content = Mock()
        dummy_content.find.return_value = -1
        page_values = [{
            "content": "",
            "status": 200
        }, {
            "content": dummy_content,
            "status": 200
        }]
        sys.modules[
            "__main__"].core._fetchPage.side_effect = lambda x: page_values.pop(
            )
        sys.modules["__main__"].core._fetchPage.return_value = {
            "content": dummy_content,
            "status": 200
        }
        sys.modules["__main__"].settings.getSetting.return_value = "smokey"
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()

        result = login._httpLogin({"new": "true"})

        args = dummy_content.find.call_args_list

        assert (sys.modules["__main__"].core._fetchPage.call_count == 1)
        print repr(args)
        assert (args[1][0] == ("smsUserPin", ))
    def test_httpLogin_should_call_fetchPage_with_proper_redirect_url_if_login_link_is_found(
            self):
        sys.modules["__main__"].core._findErrors.return_value = False
        dom_values = [
            "", "", "", "", "", "", "", "", "", "", "", "", "", ["someURL"], ""
        ]
        sys.modules["__main__"].core._fetchPage.return_value = {
            "content": "",
            "status": 200,
            "location": "here"
        }
        sys.modules["__main__"].settings.getSetting.return_value = "smokey"
        sys.modules[
            "__main__"].common.parseDOM.side_effect = lambda x="", y="", attrs={
            }, ret="": dom_values.pop()
        login = YouTubeLogin()

        result = login._httpLogin({"new": "true"})

        print repr(result)
        sys.modules["__main__"].core._fetchPage.assert_called_with({
            'referer':
            'here',
            'link':
            'someURL'
        })
        assert (sys.modules["__main__"].core._fetchPage.call_count == 2)
    def test_httpLogin_should_use_parseDOM_to_check_for_login_button_link(
            self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {
            "content": "",
            "status": 200
        }
        sys.modules["__main__"].settings.getSetting.return_value = "smokey"
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()

        result = login._httpLogin({"new": "true"})

        args = sys.modules["__main__"].common.parseDOM.call_args_list

        print repr(args)
        assert (sys.modules["__main__"].core._fetchPage.call_count == 1)
        print repr(args[1][1])
        assert (args[1][0] == ("", "button"))
        assert (args[1][1] == {
            'attrs': {
                'href': '.*?ServiceLogin.*?'
            },
            'ret': 'href'
        })
Exemplo n.º 6
0
 def test_httpLogin_should_fail_with_captcha(self):
     sys.modules["__main__"].core._fetchPage.return_value = {"content":" captcha","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     sys.modules["__main__"].common.parseDOM.return_value = ""
     login = YouTubeLogin()
     result = login._httpLogin({"new":"true"})
     print repr(result)
     assert(result == ({'content': ' captcha', 'status': 200},500))
Exemplo n.º 7
0
 def test_httpLogin_should_fail_with_captcha(self):
     sys.modules["__main__"].core._fetchPage.return_value = {"content":" captcha","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     sys.modules["__main__"].common.parseDOM.return_value = ""
     login = YouTubeLogin()
     result = login._httpLogin({"new":"true"})
     print repr(result)
     assert(result == ({'content': ' captcha', 'status': 200},500))
Exemplo n.º 8
0
    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()
Exemplo n.º 9
0
    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()
Exemplo n.º 10
0
    def test_httpLogin_should_call_findErrors_on_login_failure(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()
        
        result = login._httpLogin({"new":"true"})

        sys.modules["__main__"].core._findErrors.assert_called_with({'content': '', 'status': 200})
Exemplo n.º 11
0
    def test_authorize_should_reset_oauth2_data_when_refreshing(self):
        sys.modules["__main__"].settings.getSetting.return_value = ""
        login = YouTubeLogin()
        login._httpLogin = Mock(return_value=("",303))

        login.authorize()

        sys.modules["__main__"].settings.setSetting.assert_any_call("oauth2_access_token","")
        sys.modules["__main__"].settings.setSetting.assert_any_call("oauth2_refresh_token","")
        sys.modules["__main__"].settings.setSetting.assert_any_call("oauth2_expires_at","")
Exemplo n.º 12
0
 def test_httpLogin_should_check_if_new_is_in_params_collection_before_resetting_login_info(self):
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "true" 
     sys.modules["__main__"].common.parseDOM.return_value = ""
     login = YouTubeLogin()
     
     result = login._httpLogin({"new":"false"})
     
     assert(sys.modules["__main__"].settings.setSetting.call_count == 0)
     assert(sys.modules["__main__"].core._fetchPage.call_count == 0)
Exemplo n.º 13
0
    def test_httpLogin_should_call_findErrors_on_login_failure(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()
        
        result = login._httpLogin({"new":"true"})

        sys.modules["__main__"].core._findErrors.assert_called_with({'content': '', 'status': 200})
Exemplo n.º 14
0
    def test_authorize_should_reset_oauth2_data_when_refreshing(self):
        sys.modules["__main__"].settings.getSetting.return_value = ""
        login = YouTubeLogin()
        login._httpLogin = Mock(return_value=("",303))

        login.authorize()

        sys.modules["__main__"].settings.setSetting.assert_any_call("oauth2_access_token","")
        sys.modules["__main__"].settings.setSetting.assert_any_call("oauth2_refresh_token","")
        sys.modules["__main__"].settings.setSetting.assert_any_call("oauth2_expires_at","")
Exemplo n.º 15
0
 def test_httpLogin_should_check_if_new_is_in_params_collection_before_resetting_login_info(self):
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "true" 
     sys.modules["__main__"].common.parseDOM.return_value = ""
     login = YouTubeLogin()
     
     result = login._httpLogin({"new":"false"})
     
     assert(sys.modules["__main__"].settings.setSetting.call_count == 0)
     assert(sys.modules["__main__"].core._fetchPage.call_count == 0)
Exemplo n.º 16
0
    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)
Exemplo n.º 17
0
    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)
Exemplo n.º 18
0
    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)
Exemplo n.º 19
0
    def test_httpLogin_should_look_save_cookiejar_on_login_success(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content": "logged_in","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.side_effect = [ ["USERNAME"], ["USERNAME"]]
        login = YouTubeLogin()

        result = login._httpLogin({"new":"true"})

        assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
        assert(sys.modules["__main__"].cookiejar.save.call_count == 1)
Exemplo n.º 20
0
    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)
Exemplo n.º 21
0
    def test_httpLogin_should_look_save_cookiejar_on_login_success(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content": "logged_in","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.side_effect = [ ["USERNAME"], ["USERNAME"]]
        login = YouTubeLogin()

        result = login._httpLogin({"new":"true"})

        assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
        assert(sys.modules["__main__"].cookiejar.save.call_count == 1)
Exemplo n.º 22
0
 def test_httpLogin_should_return_existing_http_login_info_if_new_is_not_in_params(self):
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "true"
     sys.modules["__main__"].common.parseDOM.return_value = ""
     login = YouTubeLogin()
     
     result = login._httpLogin()
     
     sys.modules["__main__"].settings.getSetting.assert_called_with("cookies_saved")
     assert(sys.modules["__main__"].core._fetchPage.call_count == 0)
     assert(result[1] == 200)
     assert(result[0] == "true")
Exemplo n.º 23
0
 def test_httpLogin_should_call_fetchPage_with_proper_fetch_options_on_first_run(self):
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     sys.modules["__main__"].common.parseDOM.return_value = ""
     login = YouTubeLogin()
     
     result = login._httpLogin({"new":"true"})
     
     args = sys.modules["__main__"].core._fetchPage.call_args
     assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
     print repr(args)
     assert(args[0][0] == {"link":"http://www.youtube.com/"})
Exemplo n.º 24
0
    def test_httpLogin_should_look_for_user_name_to_indicate_login_success(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content": "logged_in","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.side_effect = [ ["USERNAME"], ["USERNAME"]]
        login = YouTubeLogin()
        login._getLoginInfo = Mock()

        result = login._httpLogin({"new":"true"})

        assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
        login._getLoginInfo.assert_called_with(["USERNAME"])
Exemplo n.º 25
0
 def test_httpLogin_should_return_existing_http_login_info_if_new_is_not_in_params(self):
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "true"
     sys.modules["__main__"].common.parseDOM.return_value = ""
     login = YouTubeLogin()
     
     result = login._httpLogin()
     
     sys.modules["__main__"].settings.getSetting.assert_called_with("cookies_saved")
     assert(sys.modules["__main__"].core._fetchPage.call_count == 0)
     assert(result[1] == 200)
     assert(result[0] == "true")
Exemplo n.º 26
0
    def test_httpLogin_should_call_getLoginInfo_on_login_success(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"<span class='masthead-user-username'>USERNAME</class>","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.side_effect = [ ["USERNAME"], ["USERNAME"]]
        login = YouTubeLogin()
        login._getLoginInfo = Mock()
        login._getLoginInfo.return_value = 200
        
        result = login._httpLogin({"new":"true"})

        login._getLoginInfo.assert_called_with(["USERNAME"])
Exemplo n.º 27
0
 def test_httpLogin_should_call_fetchPage_with_proper_fetch_options_on_first_run(self):
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     sys.modules["__main__"].common.parseDOM.return_value = ""
     login = YouTubeLogin()
     
     result = login._httpLogin({"new":"true"})
     
     args = sys.modules["__main__"].core._fetchPage.call_args
     assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
     print repr(args)
     assert(args[0][0] == {"link":"http://www.youtube.com/"})
Exemplo n.º 28
0
    def test_httpLogin_should_call_fetchPage_with_proper_redirect_url_if_login_link_is_found(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        dom_values = ["", "", "", "", "","","","","","","","","",["someURL"], ""]
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200, "location": "here"}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()
        login = YouTubeLogin()
        
        result = login._httpLogin({"new":"true"})

        print repr(result)
        sys.modules["__main__"].core._fetchPage.assert_called_with({'referer': 'here', 'link': 'someURL'})
        assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
Exemplo n.º 29
0
 def test_httpLogin_should_call_fillLoginInfo_if_login_form_present(self):
     sys.modules["__main__"].core._findErrors.return_value = False
     dom_values = ["","","","","","","","",["someURL"],"", ""]
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"somePage","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()
     login = YouTubeLogin()
     login._fillLoginInfo = Mock()
     login._fillLoginInfo.return_value = ("",{})
     
     result = login._httpLogin({"new":"true"})
     
     login._fillLoginInfo.assert_called_with({'content': 'somePage', 'status': 200})
Exemplo n.º 30
0
 def test_httpLogin_should_call_fillLoginInfo_if_login_form_present(self):
     sys.modules["__main__"].core._findErrors.return_value = False
     dom_values = ["","","","","","","","",["someURL"],"", ""]
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"somePage","status":200}
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()
     login = YouTubeLogin()
     login._fillLoginInfo = Mock()
     login._fillLoginInfo.return_value = ("",{})
     
     result = login._httpLogin({"new":"true"})
     
     login._fillLoginInfo.assert_called_with({'content': 'somePage', 'status': 200})
Exemplo n.º 31
0
    def test_httpLogin_should_use_parseDOM_to_check_for_new_url_redirects(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()
        
        result = login._httpLogin({"new":"true"})

        args = sys.modules["__main__"].common.parseDOM.call_args_list
        print repr(args[2])
        assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
        assert(args[3][0] == ('', 'meta'))
        assert(args[3][1] == {'attrs': {'http-equiv': 'refresh'}, 'ret': 'content'})
Exemplo n.º 32
0
 def test_httpLogin_should_call_fetchPage_with_proper_redirect_url(self):
     sys.modules["__main__"].core._findErrors.return_value = False
     dom_values = ["","","","","","","",["&#39;someURL&#39;"],"","", ""]
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"somePage","status":200, "location": "here"}
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()
     login = YouTubeLogin()
     login._fillLoginInfo = Mock()
     login._fillLoginInfo.return_value = ("some_galx_value",{"some_key":"some_value"})
     
     result = login._httpLogin({"new":"true"})
     
     assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
     sys.modules["__main__"].core._fetchPage.assert_called_with({'referer': 'here', 'link': 'someURL', 'no-language-cookie': 'true'})
Exemplo n.º 33
0
    def test_httpLogin_should_use_parseDOM_to_check_for_new_url_redirects(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()
        
        result = login._httpLogin({"new":"true"})

        args = sys.modules["__main__"].common.parseDOM.call_args_list
        print repr(args[2])
        assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
        assert(args[3][0] == ('', 'meta'))
        assert(args[3][1] == {'attrs': {'http-equiv': 'refresh'}, 'ret': 'content'})
Exemplo n.º 34
0
 def test_httpLogin_should_call_fetchPage_with_proper_fetch_options_if_fillLoginInfo_succeded(self):
     sys.modules["__main__"].core._findErrors.return_value = False
     dom_values = ["","","","","","","","",["someURL"],"", ""]
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"somePage","status":200, "location": "here"}
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()
     login = YouTubeLogin()
     login._fillLoginInfo = Mock()
     login._fillLoginInfo.return_value = ("some_galx_value",{"some_key":"some_value"})
     
     result = login._httpLogin({"new":"true"})
     
     login._fillLoginInfo.assert_called_with({'content': 'somePage', 'status': 200, 'location': 'here'})
     assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
     sys.modules["__main__"].core._fetchPage.assert_called_with({'url_data': {'some_key': 'some_value'}, 'referer': 'here', 'link': 'someURL', 'hidden': 'true'})
Exemplo n.º 35
0
 def test_httpLogin_should_call_fetchPage_with_correct_fetch_options_if_fillUserPin_succeded(self):
     sys.modules["__main__"].core._findErrors.return_value = False
     page_values = [ {"content":" captcha","status":200, "location": "here"}, { "new_url": "http://www.mock.com", "content":"something,smsUserPin,somethingElse","status":200, "location": "here"}]
     sys.modules["__main__"].core._fetchPage.side_effect = lambda x: page_values.pop() 
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     dom_values = [["Login"], [], [], [], []]
     sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()
     login = YouTubeLogin()
     login._fillUserPin = Mock()
     login._fillUserPin.return_value = "some_url_data"
     
     result = login._httpLogin({"new":"true"})
     
     assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
     sys.modules["__main__"].core._fetchPage.assert_called_with({'referer': 'http://www.mock.com', 'link': 'Login', 'url_data': 'some_url_data'})
Exemplo n.º 36
0
    def test_httpLogin_should_use_parseDOM_to_find_smsToken(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()
        
        result = login._httpLogin({"new":"true"})

        args = sys.modules["__main__"].common.parseDOM.call_args_list

        print repr(args)
        assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
        assert(args[4][0] == ('', 'input'))
        assert(args[4][1] == {'attrs': {'name': 'smsToken'}, 'ret': 'value'})
Exemplo n.º 37
0
    def test_httpLogin_should_use_parseDOM_to_find_smsToken(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()
        
        result = login._httpLogin({"new":"true"})

        args = sys.modules["__main__"].common.parseDOM.call_args_list

        print repr(args)
        assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
        assert(args[4][0] == ('', 'input'))
        assert(args[4][1] == {'attrs': {'name': 'smsToken'}, 'ret': 'value'})
Exemplo n.º 38
0
 def test_httpLogin_should_call_fetchPage_with_correct_fetch_options_if_fillUserPin_succeded(self):
     sys.modules["__main__"].core._findErrors.return_value = False
     page_values = [ {"content":" captcha","status":200, "location": "here"}, { "new_url": "http://www.mock.com", "content":"something,smsUserPin,somethingElse","status":200, "location": "here"}]
     sys.modules["__main__"].core._fetchPage.side_effect = lambda x: page_values.pop() 
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     dom_values = [["Login"], [], [], [], []]
     sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()
     login = YouTubeLogin()
     login._fillUserPin = Mock()
     login._fillUserPin.return_value = "some_url_data"
     
     result = login._httpLogin({"new":"true"})
     
     assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
     sys.modules["__main__"].core._fetchPage.assert_called_with({'referer': 'here', 'link': 'Login', 'url_data': 'some_url_data'})
Exemplo n.º 39
0
 def test_httpLogin_should_call_fetchPage_with_proper_fetch_options_if_fillLoginInfo_succeded(self):
     sys.modules["__main__"].core._findErrors.return_value = False
     dom_values = ["","","","","","","","",["someURL"],"", ""]
     sys.modules["__main__"].core._fetchPage.return_value = {"content":"somePage","status":200, "location": "here"}
     sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
     sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()
     login = YouTubeLogin()
     login._fillLoginInfo = Mock()
     login._fillLoginInfo.return_value = ("some_galx_value",{"some_key":"some_value"})
     
     result = login._httpLogin({"new":"true"})
     
     login._fillLoginInfo.assert_called_with({'content': 'somePage', 'status': 200, 'location': 'here'})
     assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
     sys.modules["__main__"].core._fetchPage.assert_called_with({'url_data': {'some_key': 'some_value'}, 'referer': 'here', 'link': 'someURL', 'hidden': 'true'})
Exemplo n.º 40
0
    def test_httpLogin_should_use_parseDOM_to_check_for_login_form(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()
        
        result = login._httpLogin({"new":"true"})

        args = sys.modules["__main__"].common.parseDOM.call_args_list

        print repr(args)
        assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
        assert(args[2][0] == ("","form"))
        assert(args[2][1] == {'attrs': {'id': 'gaia_loginform'}, 'ret': 'action'})
Exemplo n.º 41
0
    def test_httpLogin_should_call_fillUserPin_if_2factor_login_needs_smsUserPin(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        page_values = [ {"content":" captcha","status":200, "location": "here"}, { "new_url": "http://www.mock.com/", "content":"something,smsUserPin,somethingElse","status":200, "location": "here"}]
        sys.modules["__main__"].core._fetchPage.side_effect = lambda x: page_values.pop() 
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        dom_values = [["Login"], [], [], [], []]
        sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()

        login = YouTubeLogin()
        login._fillUserPin = Mock()
        login._fillUserPin.return_value = "123456"
        
        result = login._httpLogin({"new":"true"})
        
        assert(sys.modules["__main__"].core._fetchPage.call_count == 2)
        login._fillUserPin.assert_called_with("something,smsUserPin,somethingElse")
Exemplo n.º 42
0
    def test_httpLogin_should_call_getLoginInfo_on_login_success(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {
            "content": "<span class='masthead-user-username'>USERNAME</class>",
            "status": 200
        }
        sys.modules["__main__"].settings.getSetting.return_value = "smokey"
        sys.modules["__main__"].common.parseDOM.side_effect = [["USERNAME"],
                                                               ["USERNAME"]]
        login = YouTubeLogin()
        login._getLoginInfo = Mock()
        login._getLoginInfo.return_value = 200

        result = login._httpLogin({"new": "true"})

        login._getLoginInfo.assert_called_with(["USERNAME"])
Exemplo n.º 43
0
    def test_httpLogin_should_look_for_user_name_to_indicate_login_success(
            self):
        sys.modules["__main__"].core._findErrors.return_value = False
        sys.modules["__main__"].core._fetchPage.return_value = {
            "content": "logged_in",
            "status": 200
        }
        sys.modules["__main__"].settings.getSetting.return_value = "smokey"
        sys.modules["__main__"].common.parseDOM.side_effect = [["USERNAME"],
                                                               ["USERNAME"]]
        login = YouTubeLogin()
        login._getLoginInfo = Mock()

        result = login._httpLogin({"new": "true"})

        assert (sys.modules["__main__"].core._fetchPage.call_count == 1)
        login._getLoginInfo.assert_called_with(["USERNAME"])
Exemplo n.º 44
0
    def test_httpLogin_should_call_fetchPage_with_correct_fetch_options_if_smsToken_is_found(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        dom_values = ["USERNAME", ["some cont"], ["some smsToken"], "", "", "", "", ["galx"], "", ""]
        login_values = [("",""), ("some_galx", "some_url_data")]
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200, "location": "here"}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()

        login = YouTubeLogin()
        login._fillLoginInfo = Mock()
        login._fillLoginInfo.side_effect = lambda x: login_values.pop()

        result = login._httpLogin({"new":"true"})

        print sys.modules["__main__"].core._fetchPage.call_count
        assert(sys.modules["__main__"].core._fetchPage.call_count == 3)
        print repr(sys.modules["__main__"].core._fetchPage.call_args_list)
        sys.modules["__main__"].core._fetchPage.assert_called_with({'referer': 'here', 'link': 'some cont', 'url_data': {'service': 'youtube', 'GALX': 'some_galx', 'PersistentCookie': 'yes', 'smsToken': 'some smsToken'}})
Exemplo n.º 45
0
    def test_httpLogin_should_call_fetchPage_with_correct_fetch_options_if_smsToken_is_found(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        dom_values = ["USERNAME", ["some cont"], ["some smsToken"], "", "", "", "", ["galx"], "", ""]
        login_values = [("",""), ("some_galx", "some_url_data")]
        sys.modules["__main__"].core._fetchPage.return_value = {"content":"","status":200, "location": "here"}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.side_effect = lambda x = "",y = "",attrs = {},ret = "": dom_values.pop()

        login = YouTubeLogin()
        login._fillLoginInfo = Mock()
        login._fillLoginInfo.side_effect = lambda x: login_values.pop()

        result = login._httpLogin({"new":"true"})

        print sys.modules["__main__"].core._fetchPage.call_count
        assert(sys.modules["__main__"].core._fetchPage.call_count == 3)
        print repr(sys.modules["__main__"].core._fetchPage.call_args_list)
        sys.modules["__main__"].core._fetchPage.assert_called_with({'referer': 'here', 'link': 'some cont', 'url_data': {'service': 'youtube', 'GALX': 'some_galx', 'PersistentCookie': 'yes', 'smsToken': 'some smsToken'}})
Exemplo n.º 46
0
    def test_httpLogin_should_search_fetchPage_result_to_check_for_2factor_login(self):
        sys.modules["__main__"].core._findErrors.return_value = False
        dummy_content = Mock()
        dummy_content.find.return_value = -1
        page_values = [ {"content":"","status":200}, {"content":dummy_content,"status":200}]
        sys.modules["__main__"].core._fetchPage.side_effect = lambda x: page_values.pop() 
        sys.modules["__main__"].core._fetchPage.return_value = {"content":dummy_content,"status":200}
        sys.modules["__main__"].settings.getSetting.return_value = "smokey" 
        sys.modules["__main__"].common.parseDOM.return_value = ""
        login = YouTubeLogin()
        
        result = login._httpLogin({"new":"true"})
        
        args = dummy_content.find.call_args_list

        assert(sys.modules["__main__"].core._fetchPage.call_count == 1)
        print repr(args)
        assert(args[1][0] == ("smsUserPin",))