Best Python code snippet using localstack_python
test_route53_query_logging_config.py
Source:test_route53_query_logging_config.py
...31 return log_group_arn32@mock_logs33@mock_route5334def test_create_query_logging_config_bad_args():35 """Test bad arguments to create_query_logging_config()."""36 client = boto3.client("route53", region_name=TEST_REGION)37 logs_client = boto3.client("logs", region_name=TEST_REGION)38 hosted_zone_test_name = f"route53_query_log_{get_random_hex(6)}.test"39 hosted_zone_id = create_hosted_zone_id(client, hosted_zone_test_name)40 log_group_arn = create_log_group_arn(logs_client, hosted_zone_test_name)41 # Check exception: NoSuchHostedZone42 with pytest.raises(ClientError) as exc:43 client.create_query_logging_config(44 HostedZoneId="foo", CloudWatchLogsLogGroupArn=log_group_arn45 )46 err = exc.value.response["Error"]47 assert err["Code"] == "NoSuchHostedZone"48 assert "No hosted zone found with ID: foo" in err["Message"]49 # Check exception: InvalidInput (bad CloudWatch Logs log ARN)50 with pytest.raises(ClientError) as exc:51 client.create_query_logging_config(52 HostedZoneId=hosted_zone_id,53 CloudWatchLogsLogGroupArn=f"arn:aws:logs:{TEST_REGION}:{ACCOUNT_ID}:foo-bar:foo",54 )55 err = exc.value.response["Error"]56 assert err["Code"] == "InvalidInput"57 assert "The ARN for the CloudWatch Logs log group is invalid" in err["Message"]58 # Check exception: InvalidInput (CloudWatch Logs log not in us-east-1)59 with pytest.raises(ClientError) as exc:60 client.create_query_logging_config(61 HostedZoneId=hosted_zone_id,62 CloudWatchLogsLogGroupArn=log_group_arn.replace(TEST_REGION, "us-west-1"),63 )64 err = exc.value.response["Error"]65 assert err["Code"] == "InvalidInput"66 assert "The ARN for the CloudWatch Logs log group is invalid" in err["Message"]67 # Check exception: NoSuchCloudWatchLogsLogGroup68 with pytest.raises(ClientError) as exc:69 client.create_query_logging_config(70 HostedZoneId=hosted_zone_id,71 CloudWatchLogsLogGroupArn=log_group_arn.replace(72 hosted_zone_test_name, "foo"73 ),74 )75 err = exc.value.response["Error"]76 assert err["Code"] == "NoSuchCloudWatchLogsLogGroup"77 assert "The specified CloudWatch Logs log group doesn't exist" in err["Message"]78 # Check exception: QueryLoggingConfigAlreadyExists79 client.create_query_logging_config(80 HostedZoneId=hosted_zone_id, CloudWatchLogsLogGroupArn=log_group_arn81 )82 with pytest.raises(ClientError) as exc:83 client.create_query_logging_config(84 HostedZoneId=hosted_zone_id, CloudWatchLogsLogGroupArn=log_group_arn85 )86 err = exc.value.response["Error"]87 assert err["Code"] == "QueryLoggingConfigAlreadyExists"88 assert (89 "A query logging configuration already exists for this hosted zone"90 in err["Message"]91 )92@mock_logs93@mock_route5394def test_create_query_logging_config_good_args():95 """Test a valid create_logging_config() request."""96 client = boto3.client("route53", region_name=TEST_REGION)97 logs_client = boto3.client("logs", region_name=TEST_REGION)98 hosted_zone_test_name = f"route53_query_log_{get_random_hex(6)}.test"99 hosted_zone_id = create_hosted_zone_id(client, hosted_zone_test_name)100 log_group_arn = create_log_group_arn(logs_client, hosted_zone_test_name)101 response = client.create_query_logging_config(102 HostedZoneId=hosted_zone_id, CloudWatchLogsLogGroupArn=log_group_arn103 )104 config = response["QueryLoggingConfig"]105 assert config["HostedZoneId"] == hosted_zone_id.split("/")[-1]106 assert config["CloudWatchLogsLogGroupArn"] == log_group_arn107 assert config["Id"]108 location = response["Location"]109 assert (110 location111 == f"https://route53.amazonaws.com/2013-04-01/queryloggingconfig/{config['Id']}"112 )113@mock_logs114@mock_route53115def test_delete_query_logging_config():116 """Test valid and invalid delete_query_logging_config requests."""117 client = boto3.client("route53", region_name=TEST_REGION)118 logs_client = boto3.client("logs", region_name=TEST_REGION)119 # Create a query logging config that can then be deleted.120 hosted_zone_test_name = f"route53_query_log_{get_random_hex(6)}.test"121 hosted_zone_id = create_hosted_zone_id(client, hosted_zone_test_name)122 log_group_arn = create_log_group_arn(logs_client, hosted_zone_test_name)123 query_response = client.create_query_logging_config(124 HostedZoneId=hosted_zone_id, CloudWatchLogsLogGroupArn=log_group_arn125 )126 # Test the deletion.127 query_id = query_response["QueryLoggingConfig"]["Id"]128 response = client.delete_query_logging_config(Id=query_id)129 # There is no response other than the usual ResponseMetadata.130 assert list(response.keys()) == ["ResponseMetadata"]131 # Test the deletion of a non-existent query logging config, i.e., the132 # one that was just deleted.133 with pytest.raises(ClientError) as exc:134 client.delete_query_logging_config(Id=query_id)135 err = exc.value.response["Error"]136 assert err["Code"] == "NoSuchQueryLoggingConfig"137 assert "The query logging configuration does not exist" in err["Message"]138@mock_logs139@mock_route53140def test_get_query_logging_config():141 """Test valid and invalid get_query_logging_config requests."""142 client = boto3.client("route53", region_name=TEST_REGION)143 logs_client = boto3.client("logs", region_name=TEST_REGION)144 # Create a query logging config that can then be retrieved.145 hosted_zone_test_name = f"route53_query_log_{get_random_hex(6)}.test"146 hosted_zone_id = create_hosted_zone_id(client, hosted_zone_test_name)147 log_group_arn = create_log_group_arn(logs_client, hosted_zone_test_name)148 query_response = client.create_query_logging_config(149 HostedZoneId=hosted_zone_id, CloudWatchLogsLogGroupArn=log_group_arn150 )151 # Test the retrieval.152 query_id = query_response["QueryLoggingConfig"]["Id"]153 response = client.get_query_logging_config(Id=query_id)154 config = response["QueryLoggingConfig"]155 assert config["HostedZoneId"] == hosted_zone_id.split("/")[-1]156 assert config["CloudWatchLogsLogGroupArn"] == log_group_arn157 assert config["Id"]158 # Test the retrieval of a non-existent query logging config.159 with pytest.raises(ClientError) as exc:160 client.get_query_logging_config(Id="1234567890")161 err = exc.value.response["Error"]162 assert err["Code"] == "NoSuchQueryLoggingConfig"163 assert "The query logging configuration does not exist" in err["Message"]164@mock_logs165@mock_route53166def test_list_query_logging_configs_bad_args():167 """Test bad arguments to list_query_logging_configs()."""168 client = boto3.client("route53", region_name=TEST_REGION)169 logs_client = boto3.client("logs", region_name=TEST_REGION)170 # Check exception: NoSuchHostedZone171 with pytest.raises(ClientError) as exc:172 client.list_query_logging_configs(HostedZoneId="foo", MaxResults="10")173 err = exc.value.response["Error"]174 assert err["Code"] == "NoSuchHostedZone"175 assert "No hosted zone found with ID: foo" in err["Message"]176 # Create a couple of query logging configs to work with.177 for _ in range(3):178 hosted_zone_test_name = f"route53_query_log_{get_random_hex(6)}.test"179 hosted_zone_id = create_hosted_zone_id(client, hosted_zone_test_name)180 log_group_arn = create_log_group_arn(logs_client, hosted_zone_test_name)181 client.create_query_logging_config(182 HostedZoneId=hosted_zone_id, CloudWatchLogsLogGroupArn=log_group_arn183 )184 # Retrieve a query logging config, then request more with an invalid token.185 client.list_query_logging_configs(MaxResults="1")186 with pytest.raises(ClientError) as exc:187 client.list_query_logging_configs(NextToken="foo")188 err = exc.value.response["Error"]189 assert err["Code"] == "InvalidPaginationToken"190 assert (191 "Route 53 can't get the next page of query logging configurations "192 "because the specified value for NextToken is invalid." in err["Message"]193 )194@mock_logs195@mock_route53196def test_list_query_logging_configs_good_args():197 """Test valid arguments to list_query_logging_configs()."""198 client = boto3.client("route53", region_name=TEST_REGION)199 logs_client = boto3.client("logs", region_name=TEST_REGION)200 # Test when there are no query logging configs.201 response = client.list_query_logging_configs()202 query_logging_configs = response["QueryLoggingConfigs"]203 assert len(query_logging_configs) == 0204 # Create a couple of query logging configs to work with.205 zone_ids = []206 for _ in range(10):207 hosted_zone_test_name = f"route53_query_log_{get_random_hex(6)}.test"208 hosted_zone_id = create_hosted_zone_id(client, hosted_zone_test_name)209 zone_ids.append(hosted_zone_id)210 log_group_arn = create_log_group_arn(logs_client, hosted_zone_test_name)211 client.create_query_logging_config(212 HostedZoneId=hosted_zone_id, CloudWatchLogsLogGroupArn=log_group_arn213 )214 # Verify all 10 of the query logging configs can be retrieved in one go.215 response = client.list_query_logging_configs()216 query_logging_configs = response["QueryLoggingConfigs"]217 assert len(query_logging_configs) == 10218 for idx, query_logging_config in enumerate(query_logging_configs):219 assert query_logging_config["HostedZoneId"] == zone_ids[idx].split("/")[-1]220 # Request only two of the query logging configs and verify there's a221 # next_token.222 response = client.list_query_logging_configs(MaxResults="2")223 assert len(response["QueryLoggingConfigs"]) == 2224 assert response["NextToken"]225 # Request the remaining 8 query logging configs and verify there is...
test_aws_hostedzones_client.py
Source:test_aws_hostedzones_client.py
...102 }103 route53_client.list_query_logging_configs = Mock(104 side_effect=lambda HostedZoneId: expected_list_query_logging_config105 )106 AwsHostedZonesClient(route53_client).create_query_logging_config(107 "AAAABBBBCCCCDD", "arn:aws:logs:us-east-1:123456789012:log-group:/aws/route53/public.aws.scanner.gov.uk."108 )109 assert route53_client.list_query_logging_configs.call_count == 1110 assert route53_client.create_query_logging_config.call_count == 1111 route53_client.create_query_logging_config.assert_has_calls(112 [113 call(114 HostedZoneId="AAAABBBBCCCCDD",115 CloudWatchLogsLogGroupArn="arn:aws:logs:us-east-1:123456789012:log-group:\116/aws/route53/public.aws.scanner.gov.uk.",117 )118 ]119 )120 def test_delete_query_logging_config(self) -> None:...
aws_hosted_zones_client.py
Source:aws_hosted_zones_client.py
...27 try:28 return self._route53.list_query_logging_configs(HostedZoneId=id)29 except (BotoCoreError, ClientError) as err:30 raise QueryLogException(f"unable to get the query log config: {err}")31 def create_query_logging_config(self, hosted_zone_id: str, cloudwatch_logs_loggrouparn: str) -> Any:32 hosted_zone_query_log = self._route53.list_query_logging_configs(HostedZoneId=hosted_zone_id)33 if (34 len(hosted_zone_query_log["QueryLoggingConfigs"]) == 035 or hosted_zone_query_log["QueryLoggingConfigs"][0]["CloudWatchLogsLogGroupArn"] == ""36 ):37 return self._route53.create_query_logging_config(38 HostedZoneId=hosted_zone_id, CloudWatchLogsLogGroupArn=cloudwatch_logs_loggrouparn39 )40 def delete_query_logging_config(self, hosted_zone_id: str) -> Any:41 queryLoggingConfig = self._route53.list_query_logging_configs(HostedZoneId=hosted_zone_id)42 if len(queryLoggingConfig["QueryLoggingConfigs"]) > 0:43 queryLoggingConfigId = queryLoggingConfig["QueryLoggingConfigs"][0]["Id"]44 self._route53.delete_query_logging_config(Id=queryLoggingConfigId)...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!