136 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Unit tests for servicediscovery-supported APIs."""
 | |
| import boto3
 | |
| import pytest
 | |
| import sure  # noqa # pylint: disable=unused-import
 | |
| 
 | |
| from botocore.exceptions import ClientError
 | |
| from moto import mock_servicediscovery
 | |
| 
 | |
| # See our Development Tips on writing tests for hints on how to write good tests:
 | |
| # http://docs.getmoto.org/en/latest/docs/contributing/development_tips/tests.html
 | |
| 
 | |
| 
 | |
| @mock_servicediscovery
 | |
| def test_list_operations_initial():
 | |
|     client = boto3.client("servicediscovery", region_name="eu-west-1")
 | |
|     resp = client.list_operations()
 | |
| 
 | |
|     resp.should.have.key("Operations").equals([])
 | |
| 
 | |
| 
 | |
| @mock_servicediscovery
 | |
| def test_list_operations():
 | |
|     client = boto3.client("servicediscovery", region_name="eu-west-2")
 | |
| 
 | |
|     resp = client.create_http_namespace(Name="n/a")
 | |
|     resp.should.have.key("OperationId")
 | |
|     op_id = resp["OperationId"]
 | |
| 
 | |
|     resp = client.list_operations()
 | |
|     resp.should.have.key("Operations").length_of(1)
 | |
|     resp["Operations"].should.equal([{"Id": op_id, "Status": "SUCCESS"}])
 | |
| 
 | |
| 
 | |
| @mock_servicediscovery
 | |
| def test_get_create_http_namespace_operation():
 | |
|     client = boto3.client("servicediscovery", region_name="eu-west-1")
 | |
|     resp = client.create_http_namespace(Name="mynamespace")
 | |
| 
 | |
|     resp["OperationId"].should.match("[a-z0-9]{32}-[a-z0-9]{8}")
 | |
| 
 | |
|     operation_id = resp["OperationId"]
 | |
| 
 | |
|     resp = client.get_operation(OperationId=operation_id)
 | |
| 
 | |
|     resp.should.have.key("Operation")
 | |
|     operation = resp["Operation"]
 | |
|     operation.should.have.key("Id").equals(operation_id)
 | |
|     operation.should.have.key("Type").equals("CREATE_NAMESPACE")
 | |
|     operation.should.have.key("Status").equals("SUCCESS")
 | |
|     operation.should.have.key("CreateDate")
 | |
|     operation.should.have.key("UpdateDate")
 | |
|     operation.should.have.key("Targets")
 | |
| 
 | |
|     targets = operation["Targets"]
 | |
|     targets.should.have.key("NAMESPACE")
 | |
| 
 | |
|     namespaces = client.list_namespaces()["Namespaces"]
 | |
|     [ns["Id"] for ns in namespaces].should.contain(targets["NAMESPACE"])
 | |
| 
 | |
| 
 | |
| @mock_servicediscovery
 | |
| def test_get_private_dns_namespace_operation():
 | |
|     client = boto3.client("servicediscovery", region_name="eu-west-1")
 | |
|     resp = client.create_private_dns_namespace(Name="dns_ns", Vpc="vpc_id")
 | |
| 
 | |
|     resp["OperationId"].should.match("[a-z0-9]{32}-[a-z0-9]{8}")
 | |
| 
 | |
|     operation_id = resp["OperationId"]
 | |
| 
 | |
|     resp = client.get_operation(OperationId=operation_id)
 | |
| 
 | |
|     resp.should.have.key("Operation")
 | |
|     operation = resp["Operation"]
 | |
|     operation.should.have.key("Id").equals(operation_id)
 | |
|     operation.should.have.key("Type").equals("CREATE_NAMESPACE")
 | |
|     operation.should.have.key("Status").equals("SUCCESS")
 | |
|     operation.should.have.key("CreateDate")
 | |
|     operation.should.have.key("UpdateDate")
 | |
|     operation.should.have.key("Targets")
 | |
| 
 | |
| 
 | |
| @mock_servicediscovery
 | |
| def test_get_public_dns_namespace_operation():
 | |
|     client = boto3.client("servicediscovery", region_name="eu-west-1")
 | |
|     resp = client.create_public_dns_namespace(Name="dns_ns")
 | |
| 
 | |
|     resp["OperationId"].should.match("[a-z0-9]{32}-[a-z0-9]{8}")
 | |
| 
 | |
|     operation_id = resp["OperationId"]
 | |
| 
 | |
|     resp = client.get_operation(OperationId=operation_id)
 | |
| 
 | |
|     resp.should.have.key("Operation")
 | |
|     operation = resp["Operation"]
 | |
|     operation.should.have.key("Id").equals(operation_id)
 | |
|     operation.should.have.key("Type").equals("CREATE_NAMESPACE")
 | |
|     operation.should.have.key("Status").equals("SUCCESS")
 | |
|     operation.should.have.key("CreateDate")
 | |
|     operation.should.have.key("UpdateDate")
 | |
|     operation.should.have.key("Targets")
 | |
| 
 | |
| 
 | |
| @mock_servicediscovery
 | |
| def test_get_update_service_operation():
 | |
|     client = boto3.client("servicediscovery", region_name="eu-west-1")
 | |
|     service_id = client.create_service(
 | |
|         Name="my service", NamespaceId="ns_id", Description="first desc"
 | |
|     )["Service"]["Id"]
 | |
| 
 | |
|     resp = client.update_service(Id=service_id, Service={"Description": "updated desc"})
 | |
| 
 | |
|     resp["OperationId"].should.match("[a-z0-9]{32}-[a-z0-9]{8}")
 | |
| 
 | |
|     operation_id = resp["OperationId"]
 | |
| 
 | |
|     resp = client.get_operation(OperationId=operation_id)
 | |
| 
 | |
|     resp.should.have.key("Operation")
 | |
|     operation = resp["Operation"]
 | |
|     operation.should.have.key("Id").equals(operation_id)
 | |
|     operation.should.have.key("Type").equals("UPDATE_SERVICE")
 | |
|     operation.should.have.key("Status").equals("SUCCESS")
 | |
|     operation.should.have.key("CreateDate")
 | |
|     operation.should.have.key("UpdateDate")
 | |
|     operation.should.have.key("Targets")
 | |
| 
 | |
| 
 | |
| @mock_servicediscovery
 | |
| def test_get_unknown_operation():
 | |
|     client = boto3.client("servicediscovery", region_name="eu-west-1")
 | |
| 
 | |
|     with pytest.raises(ClientError) as exc:
 | |
|         client.get_operation(OperationId="unknown")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("OperationNotFound")
 |