170 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import boto3
 | |
| import sure  # noqa
 | |
| from moto import mock_route53
 | |
| 
 | |
| 
 | |
| @mock_route53
 | |
| def test_create_health_check():
 | |
|     client = boto3.client("route53", region_name="us-east-1")
 | |
| 
 | |
|     response = client.create_health_check(
 | |
|         CallerReference="test-route53-health-HealthCheck-asdf",
 | |
|         HealthCheckConfig={
 | |
|             "IPAddress": "93.184.216.34",
 | |
|             "Port": 80,
 | |
|             "Type": "HTTP",
 | |
|             "ResourcePath": "/",
 | |
|             "FullyQualifiedDomainName": "example.com",
 | |
|             "RequestInterval": 10,
 | |
|             "FailureThreshold": 2,
 | |
|         },
 | |
|     )
 | |
|     response["ResponseMetadata"]["HTTPStatusCode"].should.equal(201)
 | |
|     #
 | |
|     check = response["HealthCheck"]
 | |
|     check.should.have.key("Id")
 | |
|     check.should.have.key("CallerReference").being.equal(
 | |
|         "test-route53-health-HealthCheck-asdf"
 | |
|     )
 | |
|     check.should.have.key("HealthCheckConfig")
 | |
|     #
 | |
|     config = check["HealthCheckConfig"]
 | |
|     config.should.have.key("IPAddress").being.equal("93.184.216.34")
 | |
|     config.should.have.key("Port").being.equal(80)
 | |
|     config.should.have.key("Type").being.equal("HTTP")
 | |
|     config.should.have.key("ResourcePath").being.equal("/")
 | |
|     config.should.have.key("FullyQualifiedDomainName").being.equal("example.com")
 | |
|     config.should.have.key("RequestInterval").being.equal(10)
 | |
|     config.should.have.key("FailureThreshold").being.equal(2)
 | |
|     config.should.have.key("MeasureLatency").being.equal(False)
 | |
|     config.should.have.key("Inverted").being.equal(False)
 | |
|     config.should.have.key("Disabled").being.equal(False)
 | |
|     config.should.have.key("EnableSNI").being.equal(False)
 | |
| 
 | |
|     config.shouldnt.have.key("ChildHealthChecks")
 | |
|     config.shouldnt.have.key("HealthThreshold")
 | |
| 
 | |
| 
 | |
| @mock_route53
 | |
| def test_create_health_check_with_additional_options():
 | |
|     client = boto3.client("route53", region_name="us-east-1")
 | |
| 
 | |
|     response = client.create_health_check(
 | |
|         CallerReference="test-route53-health-HealthCheck-asdf",
 | |
|         HealthCheckConfig={
 | |
|             "IPAddress": "93.184.216.34",
 | |
|             "Port": 80,
 | |
|             "Type": "HTTP",
 | |
|             "ResourcePath": "/",
 | |
|             "FullyQualifiedDomainName": "example.com",
 | |
|             "RequestInterval": 10,
 | |
|             "FailureThreshold": 2,
 | |
|             "MeasureLatency": True,
 | |
|             "Inverted": True,
 | |
|             "Disabled": True,
 | |
|             "EnableSNI": True,
 | |
|         },
 | |
|     )
 | |
|     response["ResponseMetadata"]["HTTPStatusCode"].should.equal(201)
 | |
|     #
 | |
|     check = response["HealthCheck"]
 | |
|     check.should.have.key("CallerReference").being.equal(
 | |
|         "test-route53-health-HealthCheck-asdf"
 | |
|     )
 | |
|     check.should.have.key("HealthCheckConfig")
 | |
|     #
 | |
|     config = check["HealthCheckConfig"]
 | |
|     config.should.have.key("MeasureLatency").being.equal(True)
 | |
|     config.should.have.key("Inverted").being.equal(True)
 | |
|     config.should.have.key("Disabled").being.equal(True)
 | |
|     config.should.have.key("EnableSNI").being.equal(True)
 | |
| 
 | |
| 
 | |
| @mock_route53
 | |
| def test_create_calculated_health_check():
 | |
|     client = boto3.client("route53", region_name="us-east-1")
 | |
| 
 | |
|     response = client.create_health_check(
 | |
|         CallerReference="test-route53-health-HealthCheck-ZHV123",
 | |
|         HealthCheckConfig={
 | |
|             "Type": "CALCULATED",
 | |
|             "Inverted": False,
 | |
|             "Disabled": False,
 | |
|             "HealthThreshold": 1,
 | |
|         },
 | |
|     )
 | |
| 
 | |
|     check = response["HealthCheck"]
 | |
|     check.should.have.key("Id")
 | |
|     check.should.have.key("CallerReference").being.equal(
 | |
|         "test-route53-health-HealthCheck-ZHV123"
 | |
|     )
 | |
|     #
 | |
|     config = check["HealthCheckConfig"]
 | |
|     config.should.have.key("Type").being.equal("CALCULATED")
 | |
|     config.should.have.key("Inverted").being.equal(False)
 | |
|     config.should.have.key("Disabled").being.equal(False)
 | |
|     config.should.have.key("HealthThreshold").being.equal(1)
 | |
|     #
 | |
|     config.shouldnt.have.key("IPAddress")
 | |
|     config.shouldnt.have.key("Port")
 | |
|     config.shouldnt.have.key("ResourcePath")
 | |
|     config.shouldnt.have.key("FullyQualifiedDomainName")
 | |
|     config.shouldnt.have.key("RequestInterval")
 | |
|     config.shouldnt.have.key("FailureThreshold")
 | |
|     config.shouldnt.have.key("MeasureLatency")
 | |
| 
 | |
| 
 | |
| @mock_route53
 | |
| def test_create_calculated_health_check_with_children():
 | |
|     client = boto3.client("route53", region_name="us-east-1")
 | |
| 
 | |
|     child1 = client.create_health_check(
 | |
|         CallerReference="test-route53-health-HealthCheck-child1",
 | |
|         HealthCheckConfig={
 | |
|             "Type": "CALCULATED",
 | |
|             "Inverted": False,
 | |
|             "Disabled": False,
 | |
|             "HealthThreshold": 1,
 | |
|         },
 | |
|     )
 | |
| 
 | |
|     child2 = client.create_health_check(
 | |
|         CallerReference="test-route53-health-HealthCheck-child2",
 | |
|         HealthCheckConfig={
 | |
|             "Type": "CALCULATED",
 | |
|             "Inverted": False,
 | |
|             "Disabled": False,
 | |
|             "HealthThreshold": 1,
 | |
|         },
 | |
|     )
 | |
| 
 | |
|     parent = client.create_health_check(
 | |
|         CallerReference="test-route53-health-HealthCheck-parent",
 | |
|         HealthCheckConfig={
 | |
|             "Type": "CALCULATED",
 | |
|             "Inverted": False,
 | |
|             "Disabled": False,
 | |
|             "HealthThreshold": 1,
 | |
|             "ChildHealthChecks": [
 | |
|                 child1["HealthCheck"]["Id"],
 | |
|                 child2["HealthCheck"]["Id"],
 | |
|             ],
 | |
|         },
 | |
|     )
 | |
| 
 | |
|     check = parent["HealthCheck"]
 | |
|     check.should.have.key("Id")
 | |
|     check.should.have.key("CallerReference").being.equal(
 | |
|         "test-route53-health-HealthCheck-parent"
 | |
|     )
 | |
|     #
 | |
|     config = check["HealthCheckConfig"]
 | |
|     config.should.have.key("Type").being.equal("CALCULATED")
 | |
|     config.should.have.key("Inverted").being.equal(False)
 | |
|     config.should.have.key("Disabled").being.equal(False)
 | |
|     config.should.have.key("HealthThreshold").being.equal(1)
 | |
|     config.should.have.key("ChildHealthChecks").being.equal(
 | |
|         [child1["HealthCheck"]["Id"], child2["HealthCheck"]["Id"]]
 | |
|     )
 |