Esempio n. 1
0
def test_proxy_client_factory_prepare_mangle_req(mocker, freeze):

    freeze.freeze(datetime.datetime(2015, 1, 1, 3, 30, 15, 50))

    req = http.Request('GET / HTTP/1.1\r\n\r\n')
    mangreq = http.Request('BOOO / HTTP/1.1\r\n\r\n')

    def inc_day_mangle(x, y):
        freeze.delta(days=1)
        return mock_deferred((mangreq, True))

    rsave = mocker.patch.object(pappyproxy.http.Request, 'async_deep_save', autospec=True, side_effect=mock_req_async_save)
    mocker.patch('pappyproxy.context.in_scope').return_value = True
    mocker.patch('pappyproxy.macros.mangle_request', side_effect=inc_day_mangle)

    cf = ProxyClientFactory(req,
                            save_all=True,
                            stream_response=False,
                            return_transport=None)
    yield cf.prepare_request()

    assert cf.request == mangreq
    assert req.time_start == datetime.datetime(2015, 1, 1, 3, 30, 15, 50)
    assert cf.request.time_start == datetime.datetime(2015, 1, 2, 3, 30, 15, 50)
    assert cf.request.reqid is not None
    assert len(rsave.mock_calls) == 2
Esempio n. 2
0
def test_proxy_client_factory_prepare_mangle_req(mocker, freeze):

    freeze.freeze(datetime.datetime(2015, 1, 1, 3, 30, 15, 50))

    req = http.Request('GET / HTTP/1.1\r\n\r\n')
    mangreq = http.Request('BOOO / HTTP/1.1\r\n\r\n')

    def inc_day_mangle(x, y):
        freeze.delta(days=1)
        return mock_deferred((mangreq, True))

    rsave = mocker.patch.object(pappyproxy.http.Request,
                                'async_deep_save',
                                autospec=True,
                                side_effect=mock_req_async_save)
    mocker.patch('pappyproxy.context.in_scope').return_value = True
    mocker.patch('pappyproxy.macros.mangle_request',
                 side_effect=inc_day_mangle)

    cf = ProxyClientFactory(req,
                            save_all=True,
                            stream_response=False,
                            return_transport=None)
    yield cf.prepare_request()

    assert cf.request == mangreq
    assert req.time_start == datetime.datetime(2015, 1, 1, 3, 30, 15, 50)
    assert cf.request.time_start == datetime.datetime(2015, 1, 2, 3, 30, 15,
                                                      50)
    assert cf.request.reqid is not None
    assert len(rsave.mock_calls) == 2
Esempio n. 3
0
def test_proxy_client_factory_prepare_reqs_simple(mocker, freeze):
    import datetime
    freeze.freeze(datetime.datetime(2015, 1, 1, 3, 30, 15, 50))

    req = http.Request('GET / HTTP/1.1\r\n\r\n')

    rsave = mocker.patch.object(pappyproxy.http.Request,
                                'async_deep_save',
                                autospec=True,
                                side_effect=mock_req_async_save)
    rsave.return_value = mock_deferred()
    mocker.patch('pappyproxy.context.in_scope').return_value = True
    mocker.patch(
        'pappyproxy.macros.mangle_request').return_value = mock_deferred(
            (req, False))

    cf = ProxyClientFactory(req,
                            save_all=False,
                            stream_response=False,
                            return_transport=None)
    yield cf.prepare_request()
    assert req.time_start == datetime.datetime(2015, 1, 1, 3, 30, 15, 50)
    assert req.reqid is None
    assert not rsave.called
    assert len(rsave.mock_calls) == 0
Esempio n. 4
0
def test_proxy_client_factory_prepare_reqs_360_noscope_save(mocker, freeze):
    freeze.freeze(datetime.datetime(2015, 1, 1, 3, 30, 15, 50))

    req = http.Request('GET / HTTP/1.1\r\n\r\n')
    mangreq = http.Request('BOOO / HTTP/1.1\r\n\r\n')

    rsave = mocker.patch.object(pappyproxy.http.Request, 'async_deep_save', autospec=True, side_effect=mock_req_async_save)
    mocker.patch('pappyproxy.context.in_scope').return_value = False
    mocker.patch('pappyproxy.macros.mangle_request', side_effect=func_deleted)

    cf = ProxyClientFactory(req,
                            save_all=True,
                            stream_response=False,
                            return_transport=None)
    yield cf.prepare_request()
    assert req.time_start == None
    assert req.reqid is None
    assert not rsave.called
    assert len(rsave.mock_calls) == 0
Esempio n. 5
0
def test_proxy_client_factory_prepare_reqs_360_noscope(mocker, freeze):
    import datetime
    freeze.freeze(datetime.datetime(2015, 1, 1, 3, 30, 15, 50))

    req = http.Request('GET / HTTP/1.1\r\n\r\n')

    rsave = mocker.patch('pappyproxy.http.Request.async_deep_save')
    rsave.return_value = mock_deferred()
    mocker.patch('pappyproxy.context.in_scope').return_value = False
    mocker.patch('pappyproxy.macros.mangle_request', new=func_deleted)

    cf = ProxyClientFactory(req,
                            save_all=True,
                            stream_response=False,
                            return_transport=None)
    yield cf.prepare_request()
    assert req.time_start == None
    assert req.reqid is None
    assert not rsave.called
    assert len(rsave.mock_calls) == 0