428 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			428 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import boto3
							 | 
						||
| 
								 | 
							
								import pytest
							 | 
						||
| 
								 | 
							
								import sure  # noqa # pylint: disable=unused-import
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from botocore.exceptions import ClientError
							 | 
						||
| 
								 | 
							
								from moto import mock_mq
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 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_mq
							 | 
						||
| 
								 | 
							
								def test_create_broker_minimal():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="ap-southeast-1")
							 | 
						||
| 
								 | 
							
								    resp = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="dm",
							 | 
						||
| 
								 | 
							
								        EngineType="ACTIVEMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Users=[{"Username": "admin", "Password": "adm1n"}],
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerId")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerArn").match("arn:aws")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_create_with_tags():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="us-east-2")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="CLUSTER_MULTI_AZ",
							 | 
						||
| 
								 | 
							
								        EngineType="RabbitMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Tags={"key1": "val2", "key2": "val2"},
							 | 
						||
| 
								 | 
							
								        Users=[],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.describe_broker(BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Tags").equals({"key1": "val2", "key2": "val2"})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_create_with_multiple_users():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="us-east-2")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="CLUSTER_MULTI_AZ",
							 | 
						||
| 
								 | 
							
								        EngineType="RabbitMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Users=[
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                "ConsoleAccess": True,
							 | 
						||
| 
								 | 
							
								                "Groups": ["second", "first", "third"],
							 | 
						||
| 
								 | 
							
								                "Password": "SecondTestTest1234",
							 | 
						||
| 
								 | 
							
								                "Username": "SecondTest",
							 | 
						||
| 
								 | 
							
								            },
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                "ConsoleAccess": False,
							 | 
						||
| 
								 | 
							
								                "Groups": [],
							 | 
						||
| 
								 | 
							
								                "Password": "TestTest1234",
							 | 
						||
| 
								 | 
							
								                "Username": "Test",
							 | 
						||
| 
								 | 
							
								            },
							 | 
						||
| 
								 | 
							
								        ],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    user1 = client.describe_user(BrokerId=broker_id, Username="SecondTest")
							 | 
						||
| 
								 | 
							
								    user1.should.have.key("Username").equals("SecondTest")
							 | 
						||
| 
								 | 
							
								    user1.should.have.key("Groups").equals(["second", "first", "third"])
							 | 
						||
| 
								 | 
							
								    user1.should.have.key("ConsoleAccess").equals(True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    user2 = client.describe_user(BrokerId=broker_id, Username="Test")
							 | 
						||
| 
								 | 
							
								    user2.should.have.key("Username").equals("Test")
							 | 
						||
| 
								 | 
							
								    user2.should.have.key("Groups").equals([])
							 | 
						||
| 
								 | 
							
								    user2.should.have.key("ConsoleAccess").equals(False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_create_with_configuration():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="us-east-2")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        Configuration={"Id": "config_id_x", "Revision": 3},
							 | 
						||
| 
								 | 
							
								        DeploymentMode="CLUSTER_SINGLE",
							 | 
						||
| 
								 | 
							
								        EngineType="ActiveMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Tags={"key1": "val2", "key2": "val2"},
							 | 
						||
| 
								 | 
							
								        Users=[],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.describe_broker(BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Configurations")
							 | 
						||
| 
								 | 
							
								    resp["Configurations"].should.have.key("Current").equals(
							 | 
						||
| 
								 | 
							
								        {"Id": "config_id_x", "Revision": 3}
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_update_with_configuration():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="us-east-2")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        Configuration={"Id": "config_id_x", "Revision": 1},
							 | 
						||
| 
								 | 
							
								        DeploymentMode="CLUSTER_SINGLE",
							 | 
						||
| 
								 | 
							
								        EngineType="ActiveMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Tags={"key1": "val2", "key2": "val2"},
							 | 
						||
| 
								 | 
							
								        Users=[],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    client.update_broker(
							 | 
						||
| 
								 | 
							
								        BrokerId=broker_id, Configuration={"Id": "config_id_x", "Revision": 2}
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.describe_broker(BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Configurations")
							 | 
						||
| 
								 | 
							
								    resp["Configurations"].should.have.key("Current").equals(
							 | 
						||
| 
								 | 
							
								        {"Id": "config_id_x", "Revision": 2}
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_delete_broker():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="ap-southeast-1")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="dm",
							 | 
						||
| 
								 | 
							
								        EngineType="ACTIVEMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Users=[{"Username": "admin", "Password": "adm1n"}],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.delete_broker(BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerId").equals(broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    client.list_brokers().should.have.key("BrokerSummaries").length_of(0)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_describe_broker():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="us-east-2")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AuthenticationStrategy="SIMPLE",
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="dm",
							 | 
						||
| 
								 | 
							
								        EncryptionOptions={"KmsKeyId": "kms-key", "UseAwsOwnedKey": False},
							 | 
						||
| 
								 | 
							
								        EngineType="ACTIVEMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        LdapServerMetadata={
							 | 
						||
| 
								 | 
							
								            "Hosts": ["host1"],
							 | 
						||
| 
								 | 
							
								            "RoleBase": "role_base_thingy",
							 | 
						||
| 
								 | 
							
								            "RoleSearchMatching": "rsm",
							 | 
						||
| 
								 | 
							
								            "ServiceAccountUsername": "sau",
							 | 
						||
| 
								 | 
							
								            "ServiceAccountPassword": "sap",
							 | 
						||
| 
								 | 
							
								            "UserBase": "ub",
							 | 
						||
| 
								 | 
							
								            "UserSearchMatching": "usm",
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        SecurityGroups=["secgroup1"],
							 | 
						||
| 
								 | 
							
								        StorageType="efs",
							 | 
						||
| 
								 | 
							
								        SubnetIds=["s-id"],
							 | 
						||
| 
								 | 
							
								        Users=[{"Username": "admin", "Password": "adm1n"}],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.describe_broker(BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerId").equals(broker_id)
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerArn").match("arn:aws")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerState").equals("RUNNING")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Created")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("AuthenticationStrategy").equals("SIMPLE")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("AutoMinorVersionUpgrade").equals(False)
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerName").equals("testbroker")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("DeploymentMode").equals("dm")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("EncryptionOptions").equals(
							 | 
						||
| 
								 | 
							
								        {"KmsKeyId": "kms-key", "UseAwsOwnedKey": False}
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("EngineType").equals("ACTIVEMQ")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("EngineVersion").equals("version")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("HostInstanceType").equals("hit")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("LdapServerMetadata").equals(
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            "Hosts": ["host1"],
							 | 
						||
| 
								 | 
							
								            "RoleBase": "role_base_thingy",
							 | 
						||
| 
								 | 
							
								            "RoleSearchMatching": "rsm",
							 | 
						||
| 
								 | 
							
								            "ServiceAccountUsername": "sau",
							 | 
						||
| 
								 | 
							
								            "UserBase": "ub",
							 | 
						||
| 
								 | 
							
								            "UserSearchMatching": "usm",
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("PubliclyAccessible").equals(True)
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("SecurityGroups").equals(["secgroup1"])
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("StorageType").equals("efs")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("SubnetIds").equals(["s-id"])
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Users").equals([{"Username": "admin"}])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_describe_broker_with_defaults():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="us-east-2")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="dm",
							 | 
						||
| 
								 | 
							
								        EngineType="ACTIVEMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Users=[],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.describe_broker(BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerInstances").length_of(1)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Configurations")
							 | 
						||
| 
								 | 
							
								    resp["Configurations"].should.have.key("Current")
							 | 
						||
| 
								 | 
							
								    resp["Configurations"].should.have.key("History").length_of(0)
							 | 
						||
| 
								 | 
							
								    resp["Configurations"].shouldnt.have.key("Pending")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("EncryptionOptions").equals({"UseAwsOwnedKey": True})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("MaintenanceWindowStartTime").equals(
							 | 
						||
| 
								 | 
							
								        {"DayOfWeek": "Sunday", "TimeOfDay": "00:00", "TimeZone": "UTC"}
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Logs").equals({"Audit": False, "General": False})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("SubnetIds").length_of(1)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_describe_multiple_rabbits():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="us-east-2")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="CLUSTER_MULTI_AZ",
							 | 
						||
| 
								 | 
							
								        EngineType="RabbitMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Users=[],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.describe_broker(BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerInstances")
							 | 
						||
| 
								 | 
							
								    resp["BrokerInstances"][0]["ConsoleURL"].should.equal(
							 | 
						||
| 
								 | 
							
								        "https://0000.mq.us-east-2.amazonaws.com"
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    resp["BrokerInstances"][0]["Endpoints"].should.have.length_of(1)
							 | 
						||
| 
								 | 
							
								    resp.shouldnt.have.key("Configurations")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Logs").equals({"General": False})
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("SubnetIds").length_of(4)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_describe_active_mq_with_standby():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="us-east-2")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="ACTIVE_STANDBY_MULTI_AZ",
							 | 
						||
| 
								 | 
							
								        EngineType="ActiveMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Users=[],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.describe_broker(BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Instances and subnets in two regions - one active, one standby
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerInstances").length_of(2)
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("SubnetIds").length_of(2)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_describe_broker_unknown():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="us-east-2")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    with pytest.raises(ClientError) as exc:
							 | 
						||
| 
								 | 
							
								        client.describe_broker(BrokerId="unknown")
							 | 
						||
| 
								 | 
							
								    err = exc.value.response["Error"]
							 | 
						||
| 
								 | 
							
								    err["Code"].should.equal("NotFoundException")
							 | 
						||
| 
								 | 
							
								    err["Message"].should.equal(
							 | 
						||
| 
								 | 
							
								        "Can't find requested broker [unknown]. Make sure your broker exists."
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_list_brokers_empty():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="eu-west-1")
							 | 
						||
| 
								 | 
							
								    resp = client.list_brokers()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerSummaries").equals([])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_list_brokers():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="eu-west-1")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="dm",
							 | 
						||
| 
								 | 
							
								        EngineType="ACTIVEMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Users=[{"Username": "admin", "Password": "adm1n"}],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = client.list_brokers()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerSummaries").length_of(1)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    summary = resp["BrokerSummaries"][0]
							 | 
						||
| 
								 | 
							
								    summary.should.have.key("BrokerArn")
							 | 
						||
| 
								 | 
							
								    summary.should.have.key("BrokerId").equals(broker_id)
							 | 
						||
| 
								 | 
							
								    summary.should.have.key("BrokerName").equals("testbroker")
							 | 
						||
| 
								 | 
							
								    summary.should.have.key("BrokerState").equals("RUNNING")
							 | 
						||
| 
								 | 
							
								    summary.should.have.key("Created")
							 | 
						||
| 
								 | 
							
								    summary.should.have.key("DeploymentMode").equals("dm")
							 | 
						||
| 
								 | 
							
								    summary.should.have.key("EngineType").equals("ACTIVEMQ")
							 | 
						||
| 
								 | 
							
								    summary.should.have.key("HostInstanceType").equals("hit")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    summary.shouldnt.have.key("Users")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_update_broker_single_attribute():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="ap-southeast-1")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="dm",
							 | 
						||
| 
								 | 
							
								        EngineType="ACTIVEMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Users=[{"Username": "admin", "Password": "adm1n"}],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								    resp = client.update_broker(AutoMinorVersionUpgrade=True, BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Changed
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("AutoMinorVersionUpgrade").equals(True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Unchanged
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerId").equals(broker_id)
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("EngineVersion").equals("version")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_update_broker_multiple_attributes():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="ap-southeast-1")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="dm",
							 | 
						||
| 
								 | 
							
								        EngineType="ACTIVEMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        SecurityGroups=["sg-1"],
							 | 
						||
| 
								 | 
							
								        Users=[{"Username": "admin", "Password": "adm1n"}],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								    resp = client.update_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=True,
							 | 
						||
| 
								 | 
							
								        BrokerId=broker_id,
							 | 
						||
| 
								 | 
							
								        Logs={"Audit": True, "General": True},
							 | 
						||
| 
								 | 
							
								        EngineVersion="version2",
							 | 
						||
| 
								 | 
							
								        SecurityGroups=["sg-1", "sg-2"],
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Changed
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("AutoMinorVersionUpgrade").equals(True)
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Logs").equals({"Audit": True, "General": True})
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("EngineVersion").equals("version2")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("SecurityGroups").equals(["sg-1", "sg-2"])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Unchanged
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("BrokerId").equals(broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_mq
							 | 
						||
| 
								 | 
							
								def test_reboot_broker():
							 | 
						||
| 
								 | 
							
								    client = boto3.client("mq", region_name="ap-southeast-1")
							 | 
						||
| 
								 | 
							
								    broker_id = client.create_broker(
							 | 
						||
| 
								 | 
							
								        AutoMinorVersionUpgrade=False,
							 | 
						||
| 
								 | 
							
								        BrokerName="testbroker",
							 | 
						||
| 
								 | 
							
								        DeploymentMode="dm",
							 | 
						||
| 
								 | 
							
								        EngineType="ACTIVEMQ",
							 | 
						||
| 
								 | 
							
								        EngineVersion="version",
							 | 
						||
| 
								 | 
							
								        HostInstanceType="hit",
							 | 
						||
| 
								 | 
							
								        PubliclyAccessible=True,
							 | 
						||
| 
								 | 
							
								        Users=[{"Username": "admin", "Password": "adm1n"}],
							 | 
						||
| 
								 | 
							
								    )["BrokerId"]
							 | 
						||
| 
								 | 
							
								    client.reboot_broker(BrokerId=broker_id)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Noop - nothing to assert or verify
							 | 
						||
| 
								 | 
							
								    pass
							 |