Ejemplo n.º 1
0
async def test_idmsfetcher_get_token_timeout():
    session = fake_aiohttp_session([
        (asyncio.TimeoutError(), 500),
    ])

    fetcher = utils.AioIMDSFetcher(num_attempts=2, session=session)

    response = await fetcher._fetch_metadata_token()
    assert response is None
Ejemplo n.º 2
0
async def test_idmsfetcher_timeout():
    session = fake_aiohttp_session([
        (asyncio.TimeoutError(), 500),
    ])

    fetcher = utils.AioIMDSFetcher(num_attempts=1, session=session)

    with pytest.raises(fetcher._RETRIES_EXCEEDED_ERROR_CLS):
        await fetcher._get_request('path', None)
Ejemplo n.º 3
0
async def test_idmsfetcher_get_token_bad_request():
    session = fake_aiohttp_session([
        ('blah', 400),
    ])

    fetcher = utils.AioIMDSFetcher(num_attempts=2,
                                   session=session,
                                   user_agent='test')
    with pytest.raises(BadIMDSRequestError):
        await fetcher._fetch_metadata_token()
Ejemplo n.º 4
0
async def test_idmsfetcher_get_token_not_found():
    session = fake_aiohttp_session([
        ('blah', 404),
    ])

    fetcher = utils.AioIMDSFetcher(num_attempts=2,
                                   session=session,
                                   user_agent='test')
    response = await fetcher._fetch_metadata_token()
    assert response is None
Ejemplo n.º 5
0
async def test_idmsfetcher_get_token_retry():
    session = fake_aiohttp_session([
        ('blah', 500),
        ('blah', 500),
        ('token', 200),
    ])

    fetcher = utils.AioIMDSFetcher(num_attempts=3, session=session)

    response = await fetcher._fetch_metadata_token()
    assert response == 'token'
Ejemplo n.º 6
0
async def test_idmsfetcher_retry():
    session = fake_aiohttp_session([
        ('blah', 500),
        ('data', 200),
    ])

    fetcher = utils.AioIMDSFetcher(num_attempts=2,
                                   session=session,
                                   user_agent='test')
    response = await fetcher._get_request('path', None, 'some_token')

    assert response.text == 'data'

    session = fake_aiohttp_session([
        ('blah', 500),
        ('data', 200),
    ])

    fetcher = utils.AioIMDSFetcher(num_attempts=1, session=session)
    with pytest.raises(fetcher._RETRIES_EXCEEDED_ERROR_CLS):
        await fetcher._get_request('path', None)
Ejemplo n.º 7
0
async def test_idmsfetcher_disabled():
    env = {'AWS_EC2_METADATA_DISABLED': 'true'}
    fetcher = utils.AioIMDSFetcher(env=env)

    with pytest.raises(fetcher._RETRIES_EXCEEDED_ERROR_CLS):
        await fetcher._get_request('path', None)