async def test_get_imgur_image(imgur_session):
    data = {'foo': 'bar'}
    response = default_imgur_response('https://api.imgur.com/3/image/test',
                                      data)

    with aiohttp_utils.mock_session(response, imgur_session) as mocked_session:
        image = await mocked_session.get_imgur_image('test')
        assert image[0] == data
async def test_get_imgur_image_unsuccessful(imgur_session):
    response = default_imgur_response('https://api.imgur.com/3/image/test',
                                      {'foo': 'bar'},
                                      success=False)

    with aiohttp_utils.mock_session(response, imgur_session) as mocked_session:
        image = await mocked_session.get_imgur_image('test')
        assert image is None
async def test_get_imgur_album(imgur_session):
    data = {'foo': 'bar'}
    response = default_imgur_response('https://api.imgur.com/3/album/test',
                                      data={'images': [data]})

    with aiohttp_utils.mock_session(response, imgur_session) as mocked_session:
        album = await utils.list_async_gen(
            mocked_session.get_imgur_album_images('test'))
        assert album[0] == data
async def test_get_imgur_album_unsuccessful(imgur_session):
    response = default_imgur_response('https://api.imgur.com/3/album/test',
                                      {'foo': 'bar'},
                                      success=False)

    with aiohttp_utils.mock_session(response, imgur_session) as mocked_session:
        album = await utils.list_async_gen(
            mocked_session.get_imgur_album_images('test'))
        assert album == []
示例#5
0
async def test_empty_post(reddit_session):
    response, subreddit, charts, url = utils.default_reddit_response(
        reddit_session, {})

    with aiohttp_utils.mock_session(response,
                                    reddit_session) as mocked_session:
        posts = await utils.list_async_gen(
            mocked_session.get_posts(subreddit, charts=charts))
        assert len(posts) == 0
示例#6
0
async def test_get_posts_no_posts(reddit_session):
    response, subreddit, charts, url = utils.default_reddit_response(
        reddit_session)

    with aiohttp_utils.mock_session(response,
                                    reddit_session) as mocked_session:
        posts = await utils.list_async_gen(
            mocked_session.get_posts(subreddit, charts=charts))
        assert len(posts) == 0
        assert mocked_session.mock.call_args == mock.call('GET',
                                                          url,
                                                          allow_redirects=True)
示例#7
0
async def test_too_many_requests(telegram_session):
    response = aiohttp_utils.create_json_response('post',
                                                  'http://example.com/test', {
                                                      'ok': False,
                                                      'error_code': 429,
                                                      'parameters': {
                                                          'retry_after': 10
                                                      }
                                                  })
    response.status = 429

    with pytest.raises(connections.TelegramTooManyRequests) as e:
        with aiohttp_utils.mock_session(response, telegram_session) as session:
            await session.send('sendMessage', {'hello': 'world!'})
    assert e.value.code == 429
    assert e.value.retry_after == 10
示例#8
0
async def test_pagination(reddit_session):
    page1_posts = [utils.reddit_post()]
    page2_posts = [utils.reddit_post()]
    page1_response, subreddit, charts, url = utils.default_reddit_response(
        reddit_session, *page1_posts)
    page2_response, _, _, _ = utils.default_reddit_response(
        reddit_session, *page2_posts)

    with aiohttp_utils.mock_session([page1_response, page2_response],
                                    reddit_session) as mocked_session:
        reddit_posts = await utils.list_async_gen(
            mocked_session.get_posts(subreddit, charts=charts, pages=2))
        assert len(reddit_posts) == len(page1_posts + page2_posts)
        assert reddit_posts[0] == page1_posts[0]
        assert reddit_posts[1] == page2_posts[0]

        assert reddit_session.mock.call_args_list[1] == \
               mock.call('GET', url, allow_redirects=True, params={'after': page1_posts[-1]['id']})