diff --git a/homeassistant/components/amazon_polly/manifest.json b/homeassistant/components/amazon_polly/manifest.json index 779e320b0ab..b54fc9d918c 100644 --- a/homeassistant/components/amazon_polly/manifest.json +++ b/homeassistant/components/amazon_polly/manifest.json @@ -2,7 +2,7 @@ "domain": "amazon_polly", "name": "Amazon Polly", "documentation": "https://www.home-assistant.io/integrations/amazon_polly", - "requirements": ["boto3==1.16.52"], + "requirements": ["boto3==1.20.24"], "codeowners": [], "iot_class": "cloud_push" } diff --git a/homeassistant/components/aws/__init__.py b/homeassistant/components/aws/__init__.py index 1a6a26f0695..33dd5837f3f 100644 --- a/homeassistant/components/aws/__init__.py +++ b/homeassistant/components/aws/__init__.py @@ -165,14 +165,14 @@ async def _validate_aws_credentials(hass, credential): del aws_config[CONF_VALIDATE] if (profile := aws_config.get(CONF_PROFILE_NAME)) is not None: - session = aiobotocore.AioSession(profile=profile) + session = aiobotocore.session.AioSession(profile=profile) del aws_config[CONF_PROFILE_NAME] if CONF_ACCESS_KEY_ID in aws_config: del aws_config[CONF_ACCESS_KEY_ID] if CONF_SECRET_ACCESS_KEY in aws_config: del aws_config[CONF_SECRET_ACCESS_KEY] else: - session = aiobotocore.AioSession() + session = aiobotocore.session.AioSession() if credential[CONF_VALIDATE]: async with session.create_client("iam", **aws_config) as client: diff --git a/homeassistant/components/aws/manifest.json b/homeassistant/components/aws/manifest.json index 57f5558f0b1..761328ba3de 100644 --- a/homeassistant/components/aws/manifest.json +++ b/homeassistant/components/aws/manifest.json @@ -2,7 +2,7 @@ "domain": "aws", "name": "Amazon Web Services (AWS)", "documentation": "https://www.home-assistant.io/integrations/aws", - "requirements": ["aiobotocore==1.2.2"], + "requirements": ["aiobotocore==2.1.0"], "codeowners": [], "iot_class": "cloud_push" } diff --git a/homeassistant/components/aws/notify.py b/homeassistant/components/aws/notify.py index b271a2a8786..fd4bcf7b200 100644 --- a/homeassistant/components/aws/notify.py +++ b/homeassistant/components/aws/notify.py @@ -27,7 +27,7 @@ _LOGGER = logging.getLogger(__name__) async def get_available_regions(hass, service): """Get available regions for a service.""" - session = aiobotocore.get_session() + session = aiobotocore.session.get_session() return await session.get_available_regions(service) @@ -83,10 +83,10 @@ async def async_get_service(hass, config, discovery_info=None): if session is None: if (profile := aws_config.get(CONF_PROFILE_NAME)) is not None: - session = aiobotocore.AioSession(profile=profile) + session = aiobotocore.session.AioSession(profile=profile) del aws_config[CONF_PROFILE_NAME] else: - session = aiobotocore.AioSession() + session = aiobotocore.session.AioSession() aws_config[CONF_REGION] = region_name diff --git a/homeassistant/components/route53/manifest.json b/homeassistant/components/route53/manifest.json index 1611fdad6fc..3320f902168 100644 --- a/homeassistant/components/route53/manifest.json +++ b/homeassistant/components/route53/manifest.json @@ -2,7 +2,7 @@ "domain": "route53", "name": "AWS Route53", "documentation": "https://www.home-assistant.io/integrations/route53", - "requirements": ["boto3==1.16.52"], + "requirements": ["boto3==1.20.24"], "codeowners": [], "iot_class": "cloud_push" } diff --git a/requirements_all.txt b/requirements_all.txt index cf4e5a05db2..84752f23515 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -147,7 +147,7 @@ aioasuswrt==1.4.0 aioazuredevops==1.3.5 # homeassistant.components.aws -aiobotocore==1.2.2 +aiobotocore==2.1.0 # homeassistant.components.dhcp aiodiscover==1.4.5 @@ -442,7 +442,7 @@ boschshcpy==0.2.28 # homeassistant.components.amazon_polly # homeassistant.components.route53 -boto3==1.16.52 +boto3==1.20.24 # homeassistant.components.braviatv bravia-tv==1.0.11 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 0edaca66a9d..6d3edd15453 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -100,7 +100,7 @@ aioasuswrt==1.4.0 aioazuredevops==1.3.5 # homeassistant.components.aws -aiobotocore==1.2.2 +aiobotocore==2.1.0 # homeassistant.components.dhcp aiodiscover==1.4.5 diff --git a/tests/components/aws/test_init.py b/tests/components/aws/test_init.py index e50c0aa546b..2186cd5d882 100644 --- a/tests/components/aws/test_init.py +++ b/tests/components/aws/test_init.py @@ -29,10 +29,14 @@ class MockAioSession: __aexit__=AsyncMock(), ) + async def get_available_regions(self, *args, **kwargs): + """Return list of available regions.""" + return ["us-east-1", "us-east-2", "us-west-1", "us-west-2"] + async def test_empty_config(hass): """Test a default config will be create for empty config.""" - with async_patch("aiobotocore.AioSession", new=MockAioSession): + with async_patch("aiobotocore.session.AioSession", new=MockAioSession): await async_setup_component(hass, "aws", {"aws": {}}) await hass.async_block_till_done() @@ -47,7 +51,7 @@ async def test_empty_config(hass): async def test_empty_credential(hass): """Test a default config will be create for empty credential section.""" - with async_patch("aiobotocore.AioSession", new=MockAioSession): + with async_patch("aiobotocore.session.AioSession", new=MockAioSession): await async_setup_component( hass, "aws", @@ -80,7 +84,7 @@ async def test_empty_credential(hass): async def test_profile_credential(hass): """Test credentials with profile name.""" - with async_patch("aiobotocore.AioSession", new=MockAioSession): + with async_patch("aiobotocore.session.AioSession", new=MockAioSession): await async_setup_component( hass, "aws", @@ -118,7 +122,7 @@ async def test_profile_credential(hass): async def test_access_key_credential(hass): """Test credentials with access key.""" - with async_patch("aiobotocore.AioSession", new=MockAioSession): + with async_patch("aiobotocore.session.AioSession", new=MockAioSession): await async_setup_component( hass, "aws", @@ -163,7 +167,7 @@ async def test_access_key_credential(hass): async def test_notify_credential(hass): """Test notify service can use access key directly.""" - with async_patch("aiobotocore.AioSession", new=MockAioSession): + with async_patch("aiobotocore.session.AioSession", new=MockAioSession): await async_setup_component( hass, "aws", @@ -197,7 +201,7 @@ async def test_notify_credential(hass): async def test_notify_credential_profile(hass): """Test notify service can use profile directly.""" - with async_patch("aiobotocore.AioSession", new=MockAioSession): + with async_patch("aiobotocore.session.AioSession", new=MockAioSession): await async_setup_component( hass, "aws", @@ -229,7 +233,7 @@ async def test_notify_credential_profile(hass): async def test_credential_skip_validate(hass): """Test credential can skip validate.""" - with async_patch("aiobotocore.AioSession", new=MockAioSession): + with async_patch("aiobotocore.session.AioSession", new=MockAioSession): await async_setup_component( hass, "aws",