async def test_session__cache_hit(mock_request):
    cache = MagicMock(spec=CacheBackend)
    cache.get_response.return_value = AsyncMock(is_expired=False)
    session = CachedSession(cache=cache)

    await session.get('http://test.url')
    assert mock_request.called is False
async def test_session__cache_miss(mock_request):
    cache = MagicMock(spec=CacheBackend)
    cache.get_response.return_value = None
    session = CachedSession(cache=cache)

    await session.get('http://test.url')
    assert mock_request.called is True
예제 #3
0
async def test_session__default_attrs(mock_request):
    cache = MagicMock(spec=CacheBackend)
    cache.request.return_value = None, CacheActions()
    session = CachedSession(cache=cache)

    response = await session.get('http://test.url')
    assert response.from_cache is False and response.is_expired is False
예제 #4
0
async def test_session__cache_expired_or_invalid(mock_request):
    cache = MagicMock(spec=CacheBackend)
    cache.request.return_value = None, CacheActions()
    session = CachedSession(cache=cache)

    await session.get('http://test.url')
    assert mock_request.called is True
예제 #5
0
async def test_all_param_types(mock_request, params) -> None:
    """Ensure that CachedSession.request() acceepts all the same parameter types as aiohttp"""
    cache = MagicMock(spec=CacheBackend)
    cache.request.return_value = None, CacheActions()
    session = CachedSession(cache=cache)

    response = await session.get('http://test.url', params=params)
    assert response.from_cache is False
예제 #6
0
async def test_session__init_kwargs():
    cookie_jar = MagicMock()
    base_url = 'https://test.com'
    session = CachedSession(
        cache=MagicMock(spec=CacheBackend),
        base_url=base_url,
        cookie_jar=cookie_jar,
    )

    assert session._base_url == URL(base_url)
    assert session._cookie_jar is cookie_jar
예제 #7
0
async def test_session__empty_cookies(mock_request):
    """Previous versions didn't set cookies if they were empty. Just make sure it doesn't explode."""
    cache = MagicMock(spec=CacheBackend)
    response = AsyncMock(is_expired=False,
                         url=URL('https://test.com'),
                         cookies=None)
    cache.request.return_value = response, CacheActions()
    session = CachedSession(cache=cache)

    session.cookie_jar.clear()
    await session.get('http://test.url')
    assert not session.cookie_jar.filter_cookies('https://test.com')
예제 #8
0
async def test_session__cookies(mock_request):
    cache = MagicMock(spec=CacheBackend)
    response = AsyncMock(
        is_expired=False,
        url=URL('https://test.com'),
        cookies=SimpleCookie({'test_cookie': 'value'}),
    )
    cache.request.return_value = response, CacheActions()
    session = CachedSession(cache=cache)

    session.cookie_jar.clear()
    await session.get('http://test.url')
    cookies = session.cookie_jar.filter_cookies('https://test.com')
    assert cookies['test_cookie'].value == 'value'
예제 #9
0
async def test_session__init_posarg():
    base_url = 'https://test.com'
    session = CachedSession(base_url, cache=MagicMock(spec=CacheBackend))
    assert session._base_url == URL(base_url)