108 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			108 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import boto3
							 | 
						||
| 
								 | 
							
								import sure  # noqa # pylint: disable=unused-import
							 | 
						||
| 
								 | 
							
								from moto import mock_timestreamwrite
							 | 
						||
| 
								 | 
							
								from moto.core import ACCOUNT_ID
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_timestreamwrite
							 | 
						||
| 
								 | 
							
								def test_create_database_simple():
							 | 
						||
| 
								 | 
							
								    ts = boto3.client("timestream-write", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    resp = ts.create_database(DatabaseName="mydatabase")
							 | 
						||
| 
								 | 
							
								    database = resp["Database"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    database.should.have.key("Arn").equals(
							 | 
						||
| 
								 | 
							
								        f"arn:aws:timestream:us-east-1:{ACCOUNT_ID}:database/mydatabase"
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    database.should.have.key("DatabaseName").equals("mydatabase")
							 | 
						||
| 
								 | 
							
								    database.should.have.key("TableCount").equals(0)
							 | 
						||
| 
								 | 
							
								    database.shouldnt.have.key("KmsKeyId")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_timestreamwrite
							 | 
						||
| 
								 | 
							
								def test_create_database_advanced():
							 | 
						||
| 
								 | 
							
								    ts = boto3.client("timestream-write", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    resp = ts.create_database(
							 | 
						||
| 
								 | 
							
								        DatabaseName="mydatabase",
							 | 
						||
| 
								 | 
							
								        KmsKeyId="mykey",
							 | 
						||
| 
								 | 
							
								        Tags=[{"Key": "k1", "Value": "v1"}, {"Key": "k2", "Value": "v2"}],
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    database = resp["Database"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    database.should.have.key("Arn").equals(
							 | 
						||
| 
								 | 
							
								        f"arn:aws:timestream:us-east-1:{ACCOUNT_ID}:database/mydatabase"
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    database.should.have.key("DatabaseName").equals("mydatabase")
							 | 
						||
| 
								 | 
							
								    database.should.have.key("TableCount").equals(0)
							 | 
						||
| 
								 | 
							
								    database.should.have.key("KmsKeyId").equal("mykey")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_timestreamwrite
							 | 
						||
| 
								 | 
							
								def test_describe_database():
							 | 
						||
| 
								 | 
							
								    ts = boto3.client("timestream-write", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    ts.create_database(DatabaseName="mydatabase", KmsKeyId="mykey")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    database = ts.describe_database(DatabaseName="mydatabase")["Database"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    database.should.have.key("Arn").equals(
							 | 
						||
| 
								 | 
							
								        f"arn:aws:timestream:us-east-1:{ACCOUNT_ID}:database/mydatabase"
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    database.should.have.key("DatabaseName").equals("mydatabase")
							 | 
						||
| 
								 | 
							
								    database.should.have.key("TableCount").equals(0)
							 | 
						||
| 
								 | 
							
								    database.should.have.key("KmsKeyId").equal("mykey")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_timestreamwrite
							 | 
						||
| 
								 | 
							
								def test_list_databases():
							 | 
						||
| 
								 | 
							
								    ts = boto3.client("timestream-write", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    ts.create_database(DatabaseName="db_with", KmsKeyId="mykey")
							 | 
						||
| 
								 | 
							
								    ts.create_database(DatabaseName="db_without")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    resp = ts.list_databases()
							 | 
						||
| 
								 | 
							
								    databases = resp["Databases"]
							 | 
						||
| 
								 | 
							
								    databases.should.have.length_of(2)
							 | 
						||
| 
								 | 
							
								    databases.should.contain(
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            "Arn": f"arn:aws:timestream:us-east-1:{ACCOUNT_ID}:database/db_with",
							 | 
						||
| 
								 | 
							
								            "DatabaseName": "db_with",
							 | 
						||
| 
								 | 
							
								            "TableCount": 0,
							 | 
						||
| 
								 | 
							
								            "KmsKeyId": "mykey",
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    databases.should.contain(
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            "Arn": f"arn:aws:timestream:us-east-1:{ACCOUNT_ID}:database/db_without",
							 | 
						||
| 
								 | 
							
								            "DatabaseName": "db_without",
							 | 
						||
| 
								 | 
							
								            "TableCount": 0,
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_timestreamwrite
							 | 
						||
| 
								 | 
							
								def test_delete_database():
							 | 
						||
| 
								 | 
							
								    ts = boto3.client("timestream-write", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    ts.create_database(DatabaseName="db_1", KmsKeyId="mykey")
							 | 
						||
| 
								 | 
							
								    ts.create_database(DatabaseName="db_2")
							 | 
						||
| 
								 | 
							
								    ts.create_database(DatabaseName="db_3", KmsKeyId="mysecondkey")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ts.list_databases()["Databases"].should.have.length_of(3)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ts.delete_database(DatabaseName="db_2")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    databases = ts.list_databases()["Databases"]
							 | 
						||
| 
								 | 
							
								    databases.should.have.length_of(2)
							 | 
						||
| 
								 | 
							
								    [db["DatabaseName"] for db in databases].should.equal(["db_1", "db_3"])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@mock_timestreamwrite
							 | 
						||
| 
								 | 
							
								def test_update_database():
							 | 
						||
| 
								 | 
							
								    ts = boto3.client("timestream-write", region_name="us-east-1")
							 | 
						||
| 
								 | 
							
								    ts.create_database(DatabaseName="mydatabase", KmsKeyId="mykey")
							 | 
						||
| 
								 | 
							
								    resp = ts.update_database(DatabaseName="mydatabase", KmsKeyId="updatedkey")
							 | 
						||
| 
								 | 
							
								    resp.should.have.key("Database")
							 | 
						||
| 
								 | 
							
								    database = resp["Database"]
							 | 
						||
| 
								 | 
							
								    database.should.have.key("Arn")
							 | 
						||
| 
								 | 
							
								    database.should.have.key("KmsKeyId").equal("updatedkey")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    database = ts.describe_database(DatabaseName="mydatabase")["Database"]
							 | 
						||
| 
								 | 
							
								    database.should.have.key("KmsKeyId").equal("updatedkey")
							 |