Exemplo n.º 1
0
async def test_cookies_jar_single_cookie():
    fake_pools = FakePools([
        Response(
            200,
            Headers([
                Header(b'Set-Cookie',
                       write_response_cookie(Cookie(b'X-Foo', b'Foo')))
            ]), TextContent('Hello, World!')),
        Response(200, Headers(), TextContent('Hello!'))
    ])
    check_cookie = False

    async def middleware_for_assertions(request, next_handler):
        if check_cookie:
            cookie = request.cookies.get(b'X-Foo')
            assert cookie is not None, 'X-Foo cookie must be configured for following requests'

        return await next_handler(request)

    async with ClientSession(url=b'https://bezkitu.org',
                             pools=fake_pools,
                             middlewares=[middleware_for_assertions
                                          ]) as client:
        await client.get(
            b'/'
        )  # the first request doesn't have any cookie because the response will set;
        check_cookie = True
        await client.get(b'/')
Exemplo n.º 2
0
def test_write_cookie(
    name,
    value,
    expires,
    domain,
    path,
    http_only,
    secure,
    max_age,
    same_site,
    expected_result,
):
    cookie = Cookie(
        name,
        value,
        expires,
        domain,
        path,
        http_only,
        secure,
        max_age,
        same_site,
    )
    value = scribe.write_response_cookie(cookie)
    assert value == expected_result
Exemplo n.º 3
0
def test_write_cookie(
    name,
    value,
    expires,
    domain,
    path,
    http_only,
    secure,
    max_age,
    same_site,
    expected_result,
):
    cookie = Cookie(
        name,
        value,
        datetime_to_cookie_format(expires) if expires else None,
        domain,
        path,
        http_only,
        secure,
        datetime_to_cookie_format(max_age) if max_age else None,
        same_site,
    )
    value = scribe.write_response_cookie(cookie)
    assert value == expected_result
Exemplo n.º 4
0
async def test_cookies_jar_single_cookie():
    fake_pools = FakePools([
        Response(200, [
            (b"Set-Cookie", write_response_cookie(Cookie(b"X-Foo", b"Foo")))
        ]).with_content(TextContent("Hello, World!")),
        Response(200, None, TextContent("Hello!")),
    ])
    check_cookie = False

    async def middleware_for_assertions(request, next_handler):
        if check_cookie:
            cookie = request.cookies.get("X-Foo")
            assert (cookie is not None
                    ), "X-Foo cookie must be configured for following requests"

        return await next_handler(request)

    async with ClientSession(
            base_url=b"https://bezkitu.org",
            pools=fake_pools,
            middlewares=[middleware_for_assertions],
    ) as client:
        await client.get(
            b"/"
        )  # the first request doesn't have any cookie because the response will set;
        check_cookie = True
        await client.get(b"/")
Exemplo n.º 5
0
async def test_remove_cookie_with_expiration():
    expire_cookie = Cookie(b'X-Foo', b'Foo')
    expire_cookie.expiration = datetime.utcnow() + timedelta(days=-2)
    fake_pools = FakePools([
        Response(
            200,
            Headers([
                Header(b'Set-Cookie',
                       write_response_cookie(Cookie(b'X-Foo', b'Foo')))
            ]), TextContent('Hello, World!')),
        Response(200, Headers(), TextContent('Hello!')),
        Response(
            200,
            Headers(
                [Header(b'Set-Cookie', write_response_cookie(expire_cookie))]),
            TextContent('Hello, World!')),
        Response(200, Headers(), TextContent('Hello!'))
    ])
    expect_cookie = False

    async def middleware_for_assertions(request, next_handler):
        cookie = request.cookies.get(b'X-Foo')
        if expect_cookie:
            assert cookie is not None, 'X-Foo cookie must be configured'
        else:
            assert cookie is None

        return await next_handler(request)

    async with ClientSession(url=b'https://bezkitu.org',
                             pools=fake_pools,
                             middlewares=[middleware_for_assertions
                                          ]) as client:
        await client.get(b'/')  # <-- cookie set here
        expect_cookie = True
        await client.get(b'/')  # <-- expect cookie in request
        expect_cookie = True
        await client.get(
            b'/')  # <-- expect cookie in request; it gets removed here
        expect_cookie = False
        await client.get(
            b'/'
        )  # <-- expect missing cookie; was deleted by previous response
Exemplo n.º 6
0
async def test_remove_cookie_with_max_age():
    expire_cookie = Cookie("X-Foo", "Foo")
    expire_cookie.max_age = 0
    fake_pools = FakePools(
        [
            Response(
                200,
                [(b"Set-Cookie", write_response_cookie(Cookie("X-Foo", "Foo")))],
                TextContent("Hello, World!"),
            ),
            Response(200, None, TextContent("Hello!")),
            Response(
                200,
                [(b"Set-Cookie", write_response_cookie(expire_cookie))],
                TextContent("Hello, World!"),
            ),
            Response(200, None, TextContent("Hello!")),
        ]
    )
    expect_cookie = False

    async def middleware_for_assertions(request, next_handler):
        cookie = request.cookies.get("X-Foo")
        if expect_cookie:
            assert cookie is not None, "X-Foo cookie must be configured"
        else:
            assert cookie is None
        return await next_handler(request)

    async with ClientSession(
        base_url=b"https://bezkitu.org",
        pools=fake_pools,
        middlewares=[middleware_for_assertions],
    ) as client:
        await client.get(b"/")  # <-- cookie set here
        expect_cookie = True
        await client.get(b"/")  # <-- expect cookie in request
        expect_cookie = True
        await client.get(b"/")  # <-- expect cookie in request; it gets removed here
        expect_cookie = False
        await client.get(
            b"/"
        )  # <-- expect missing cookie; was deleted by previous response
Exemplo n.º 7
0
        await client.get(
            b'/'
        )  # the first request doesn't have any cookie because the response will set;
        check_cookie = True
        await client.get(b'/')


@pytest.mark.asyncio
@pytest.mark.parametrize(
    'first_request_url,second_request_url,set_cookies,expected_cookies',
    [[
        b'https://foo.bezkitu.org', b'https://bezkitu.org',
        [
            Header(
                b'Set-Cookie',
                write_response_cookie(
                    Cookie(b'X-Foo', b'Foo', domain=b'bezkitu.org')))
        ], [b'X-Foo']
    ],
     [
         b'https://foo.bezkitu.org', b'https://foo.bezkitu.org',
         [
             Header(
                 b'Set-Cookie',
                 write_response_cookie(
                     Cookie(b'X-Foo', b'Foo', domain=b'foo.bezkitu.org')))
         ], [b'X-Foo']
     ],
     [
         b'https://foo.bezkitu.org', b'https://bezkitu.org',
         [
             Header(
Exemplo n.º 8
0
            b"/"
        )  # the first request doesn't have any cookie because the response will set;
        check_cookie = True
        await client.get(b"/")


@pytest.mark.asyncio
@pytest.mark.parametrize(
    "first_request_url,second_request_url,set_cookies,expected_cookies",
    [
        [
            b"https://ufo.foo.bezkitu.org",
            b"https://bezkitu.org",
            [(
                b"Set-Cookie",
                write_response_cookie(
                    Cookie(b"X-Foo", b"Foo", domain=b"bezkitu.org")),
            )],
            ["X-Foo"],
        ],
        [
            b"https://ufo.foo.bezkitu.org",
            b"https://foo.bezkitu.org",
            [(
                b"Set-Cookie",
                write_response_cookie(
                    Cookie(b"X-Foo", b"Foo", domain=b"bezkitu.org")),
            )],
            ["X-Foo"],
        ],
        [
            b"https://ufo.foo.bezkitu.org",