121 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			121 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import boto3
							 | 
						||
| 
								 | 
							
								import pytest
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from botocore.exceptions import ClientError
							 | 
						||
| 
								 | 
							
								from moto import mock_route53
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_route53
							 | 
						||
| 
								 | 
							
								def test_list_reusable_delegation_set():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("route53", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    resp = client.list_reusable_delegation_sets()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("DelegationSets").equals([])
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("IsTruncated").equals(False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_route53
							 | 
						||
| 
								 | 
							
								def test_create_reusable_delegation_set():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("route53", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    resp = client.create_reusable_delegation_set(CallerReference="r3f3r3nc3")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    headers = resp["ResponseMetadata"]["HTTPHeaders"]
							 | 
						||
| 
								 | 
							
								    headers.should.have.key("location")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("DelegationSet")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp["DelegationSet"].should.have.key("Id")
							 | 
						||
| 
								 | 
							
								    resp["DelegationSet"].should.have.key("CallerReference").equals("r3f3r3nc3")
							 | 
						||
| 
								 | 
							
								    resp["DelegationSet"].should.have.key("NameServers").length_of(4)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_route53
							 | 
						||
| 
								 | 
							
								def test_create_reusable_delegation_set_from_hosted_zone():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("route53", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    response = client.create_hosted_zone(
							 | 
						||
| 
								 | 
							
								        Name="testdns.aws.com.", CallerReference=str(hash("foo"))
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    hosted_zone_id = response["HostedZone"]["Id"]
							 | 
						||
| 
								 | 
							
								    print(response)
							 | 
						||
| 
								 | 
							
								    hosted_zone_name_servers = set(response["DelegationSet"]["NameServers"])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.create_reusable_delegation_set(
							 | 
						||
| 
								 | 
							
								        CallerReference="r3f3r3nc3", HostedZoneId=hosted_zone_id
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    set(resp["DelegationSet"]["NameServers"]).should.equal(hosted_zone_name_servers)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_route53
							 | 
						||
| 
								 | 
							
								def test_create_reusable_delegation_set_from_hosted_zone_with_delegationsetid():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("route53", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    response = client.create_hosted_zone(
							 | 
						||
| 
								 | 
							
								        Name="testdns.aws.com.",
							 | 
						||
| 
								 | 
							
								        CallerReference=str(hash("foo")),
							 | 
						||
| 
								 | 
							
								        DelegationSetId="customdelegationsetid",
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    response.should.have.key("DelegationSet")
							 | 
						||
| 
								 | 
							
								    response["DelegationSet"].should.have.key("Id").equals("customdelegationsetid")
							 | 
						||
| 
								 | 
							
								    response["DelegationSet"].should.have.key("NameServers")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    hosted_zone_id = response["HostedZone"]["Id"]
							 | 
						||
| 
								 | 
							
								    hosted_zone_name_servers = set(response["DelegationSet"]["NameServers"])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.create_reusable_delegation_set(
							 | 
						||
| 
								 | 
							
								        CallerReference="r3f3r3nc3", HostedZoneId=hosted_zone_id
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp["DelegationSet"].should.have.key("Id").shouldnt.equal("customdelegationsetid")
							 | 
						||
| 
								 | 
							
								    set(resp["DelegationSet"]["NameServers"]).should.equal(hosted_zone_name_servers)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_route53
							 | 
						||
| 
								 | 
							
								def test_get_reusable_delegation_set():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("route53", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    ds_id = client.create_reusable_delegation_set(CallerReference="r3f3r3nc3")[
							 | 
						||
| 
								 | 
							
								        "DelegationSet"
							 | 
						||
| 
								 | 
							
								    ]["Id"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.get_reusable_delegation_set(Id=ds_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("DelegationSet")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp["DelegationSet"].should.have.key("Id").equals(ds_id)
							 | 
						||
| 
								 | 
							
								    resp["DelegationSet"].should.have.key("CallerReference").equals("r3f3r3nc3")
							 | 
						||
| 
								 | 
							
								    resp["DelegationSet"].should.have.key("NameServers").length_of(4)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_route53
							 | 
						||
| 
								 | 
							
								def test_get_reusable_delegation_set_unknown():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("route53", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    with pytest.raises(ClientError) as exc:
							 | 
						||
| 
								 | 
							
								        client.get_reusable_delegation_set(Id="unknown")
							 | 
						||
| 
								 | 
							
								    err = exc.value.response["Error"]
							 | 
						||
| 
								 | 
							
								    err["Code"].should.equal("NoSuchDelegationSet")
							 | 
						||
| 
								 | 
							
								    err["Message"].should.equal("unknown")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_route53
							 | 
						||
| 
								 | 
							
								def test_list_reusable_delegation_sets():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("route53", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    client.create_reusable_delegation_set(CallerReference="r3f3r3nc3")
							 | 
						||
| 
								 | 
							
								    client.create_reusable_delegation_set(CallerReference="r3f3r3nc4")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.list_reusable_delegation_sets()
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("DelegationSets").length_of(2)
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("IsTruncated").equals(False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_route53
							 | 
						||
| 
								 | 
							
								def test_delete_reusable_delegation_set():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("route53", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    ds_id = client.create_reusable_delegation_set(CallerReference="r3f3r3nc3")[
							 | 
						||
| 
								 | 
							
								        "DelegationSet"
							 | 
						||
| 
								 | 
							
								    ]["Id"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    client.delete_reusable_delegation_set(Id=ds_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    client.list_reusable_delegation_sets()["DelegationSets"].should.have.length_of(0)
							 |