예제 #1
0
def test_log_request_with_redirect(mocked_logger):
    request = Request(method='get', url='http://mock.rulezz/redirected')
    request = request.prepare()
    original = Request(method='get', url='http://mock.rulezz/original')
    original = original.prepare()
    response = mock.MagicMock()
    response.request = request
    response0 = mock.MagicMock()
    response0.request = original
    response.history = [response0, mock.MagicMock]
    log_request(response)
    assert mocked_logger.info.call_args[0][0] == (
        "%s Request : " % request.method +
        "url=%s (redirected) \n " % response.history[0].request.url +
        "path_url=%s \n " % response.history[0].request.path_url +
        "headers=%s \n " % request.headers + "body=%s \n " % request.body)
예제 #2
0
def test_log_response(mocked_logger):
    response = mock.MagicMock()
    response.url = 'http://mock.rulezz'
    response.request.method = 'GET'
    response.status_code = 200
    response.reason = 'OK'
    response.text = "<html>body</html>"
    response.headers = {
        'Date': 'Sun, 10 May 2020 22:31:21 GMT',
        'Expires': '-1',
        'Cache-Control': 'private, max-age=0',
        'Content-Type': 'text/html; charset=ISO-8859-1',
        'P3P':
        'CP="This is not a P3P policy! See g.co/p3phelp for more info."',
        'Content-Encoding': 'gzip',
        'Server': 'gws',
        'X-XSS-Protection': '0',
        'X-Frame-Options': 'SAMEORIGIN',
        'Set-Cookie':
        '1P_JAR=2020-05-10-22; expires=Tue, 09-Jun-2020 22:31:21 GMT; path=/; domain=.google.it; Secure, NID=204=1JvfFtAYLcnQfWYzh5h0K-PttJP8IvuJdcaej_-utCvMHqavyFkwmthddhQZ-sQ6nZkNCWybVUuzTtaNoEK4TD1FG-TA7QIUR2P6-kj-vN0zkjiS4VdfQbxFnfwtIgkBxFDuoAZsoa_oYm0ODjJ4JAZfdXueqrZJ38tDtIOXpVU; expires=Mon, 09-Nov-2020 22:31:21 GMT; path=/; domain=.google.it; HttpOnly',
        'Alt-Svc':
        'h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"',
        'Transfer-Encoding': 'chunked'
    }  # noqa
    log_response(response)
    assert mocked_logger.info.call_args[0][0] == (
        "%s Response : url=%s \n " %
        (response.request.method.upper(), response.url) +
        "status=%s, reason=%s \n " % (response.status_code, response.reason) +
        "headers=%s \n " % response.headers + "body=%s \n " % response.text)
def build_mocked_session_common_request(alias='alias', url='http://mocking.rules',
                                        verify=None, cookies={}):
    keywords = RequestsLibrary()
    session = keywords.create_session(alias, url, verify=verify, cookies=cookies)
    # this prevents a real network call from being executed
    session.get = mock.MagicMock()
    return session, keywords._common_request
예제 #4
0
def test_common_request_file_descriptor_closing():
    keywords = RequestsKeywords()
    session = keywords.create_session('alias', 'http://mocking.rules')
    # this prevents a real network call from being executed
    session.get = mock.MagicMock()
    with open(os.path.join(SCRIPT_DIR, '../atests/randombytes.bin'), 'rb') as f:
        keywords._common_request('get', session,
                                 'http://mocking.rules', data=f)
        assert f.closed is True
예제 #5
0
def test_log_request(mocked_logger):
    request = Request(method='get', url='http://mock.rulezz')
    request = request.prepare()
    response = mock.MagicMock()
    response.history = []
    response.request = request
    log_request(response)
    assert mocked_logger.info.call_args[0][0] == (
        "%s Request : " % request.method + "url=%s \n " % request.url +
        "path_url=%s \n " % request.path_url +
        "headers=%s \n " % request.headers + "body=%s \n " % request.body)
예제 #6
0
def test_log_request_base64_body(mocked_logger):
    request = Request(method='get', url='http://mock.rulezz')
    request = request.prepare()
    response = mock.MagicMock()
    response.history = []
    response.request = request
    log_request(response, log_options={'request_body_binary': True})
    assert mocked_logger.info.call_args[0][0] == (
        "%s Request : " % request.method + "url=%s \n " % request.url +
        "path_url=%s \n " % request.path_url +
        "headers=%s \n " % request.headers +
        "body(base64=True)=%s \n " % request.body)
예제 #7
0
def test_log_response_base64_body(mocked_logger):
    response = mock.MagicMock()
    response.url = 'http://mock.rulezz'
    response.request.method = 'GET'
    response.status_code = 200
    response.reason = 'OK'
    response.content = b"<html>body</html>"
    log_response(response, log_options={'response_body_binary': True})
    assert mocked_logger.info.call_args[0][0] == (
        "%s Response : url=%s \n " %
        (response.request.method.upper(), response.url) +
        "status=%s, reason=%s \n " % (response.status_code, response.reason) +
        "body(base64=True)=PGh0bWw+Ym9keTwvaHRtbD4= \n ")
예제 #8
0
def test_log_response(mocked_logger):
    response = mock.MagicMock()
    response.url = 'http://mock.rulezz'
    response.request.method = 'GET'
    response.status_code = 200
    response.reason = 'OK'
    response.text = "<html>body</html>"
    log_response(response)
    assert mocked_logger.info.call_args[0][0] == (
        "%s Response : url=%s \n " %
        (response.request.method.upper(), response.url) +
        "status=%s, reason=%s \n " % (response.status_code, response.reason) +
        "body(base64=False)=%s \n " % response.text)
예제 #9
0
def build_mocked_session_keywords(url=''):
    keywords = RequestsLibrary()
    session = mock.MagicMock()
    session.url = url
    return session, keywords
예제 #10
0
def mocked_keywords():
    keywords = RequestsLibrary()
    keywords._cache = mock.MagicMock()
    keywords._common_request = mock.MagicMock()
    keywords._check_status = mock.MagicMock()
    return keywords