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
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)
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()
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
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'
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)
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)