예제 #1
0
def test_session_close(
        doggo_proxy,
        session: Session,
        http_doggo_url: str
):
    client = session.client
    check_response(session.get(http_doggo_url))
    session.close_channel()
    open_channels = client.get_open_channels()
    assert len(open_channels) == 0
예제 #2
0
def test_session_close(
        doggo_proxy,
        session: Session,
        http_doggo_url: str
):
    client = session.client
    check_response(session.get(http_doggo_url))
    session.close_channel()
    open_channels = client.get_open_channels()
    assert len(open_channels) == 0
예제 #3
0
def test_cooperative_close_denied(session: Session, api_endpoint_address: str,
                                  token_address: str,
                                  channel_manager_address: str,
                                  receiver_address: str):
    cooperative_close_denied_mock = mock.patch.object(
        session,
        'on_cooperative_close_denied',
        wraps=session.on_cooperative_close_denied).start()

    with requests_mock.mock() as server_mock:
        headers = {
            HTTPHeaders.TOKEN_ADDRESS: token_address,
            HTTPHeaders.CONTRACT_ADDRESS: channel_manager_address,
            HTTPHeaders.RECEIVER_ADDRESS: receiver_address,
            HTTPHeaders.PRICE: '3'
        }
        headers = [headers.copy() for _ in range(2)]
        headers[1][HTTPHeaders.COST] = '3'

        url = 'http://{}/something'.format(api_endpoint_address)
        server_mock.get(url, [
            {
                'status_code': 402,
                'headers': headers[0]
            },
            {
                'status_code': 200,
                'headers': headers[1],
                'text': 'success'
            },
        ])
        channel_url = re.compile(
            'http://{}/api/1/channels/0x.{{40}}/\d+'.format(
                api_endpoint_address))
        server_mock.delete(channel_url, [{'status_code': 403}])
        response = session.get(url)
        session.close_channel()

    assert response.text == 'success'
    assert cooperative_close_denied_mock.call_count == 1
    assert session.client.channels[0].state == Channel.State.settling
예제 #4
0
def test_cooperative_close_denied(
        session: Session,
        api_endpoint_address: str,
        token_address: str,
        channel_manager_address: str,
        receiver_address: str
):
    cooperative_close_denied_mock = mock.patch.object(
        session,
        'on_cooperative_close_denied',
        wraps=session.on_cooperative_close_denied
    ).start()

    with requests_mock.mock(real_http=True) as server_mock:
        headers = {
            HTTPHeaders.TOKEN_ADDRESS: token_address,
            HTTPHeaders.CONTRACT_ADDRESS: channel_manager_address,
            HTTPHeaders.RECEIVER_ADDRESS: receiver_address,
            HTTPHeaders.PRICE: '3'
        }
        headers = [headers.copy() for _ in range(2)]
        headers[1][HTTPHeaders.COST] = '3'

        url = 'http://{}/something'.format(api_endpoint_address)
        server_mock.get(url, [
            {'status_code': 402, 'headers': headers[0]},
            {'status_code': 200, 'headers': headers[1], 'text': 'success'},
        ])
        channel_url = re.compile(
            'http://{}/api/1/channels/0x.{{40}}/\d+'.format(api_endpoint_address)
        )
        server_mock.delete(channel_url, [
            {'status_code': 403}
        ])
        response = session.get(url)
        session.close_channel()

    assert response.text == 'success'
    assert cooperative_close_denied_mock.call_count == 1
    assert session.channel.state == Channel.State.settling