60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from __future__ import unicode_literals
 | 
						|
 | 
						|
import datetime
 | 
						|
 | 
						|
from botocore.exceptions import ClientError
 | 
						|
import boto3
 | 
						|
import sure  # noqa
 | 
						|
 | 
						|
from moto import mock_athena
 | 
						|
 | 
						|
 | 
						|
@mock_athena
 | 
						|
def test_create_work_group():
 | 
						|
    client = boto3.client("athena", region_name="us-east-1")
 | 
						|
 | 
						|
    response = client.create_work_group(
 | 
						|
        Name="athena_workgroup",
 | 
						|
        Description="Test work group",
 | 
						|
        Configuration={
 | 
						|
            "ResultConfiguration": {
 | 
						|
                "OutputLocation": "s3://bucket-name/prefix/",
 | 
						|
                "EncryptionConfiguration": {
 | 
						|
                    "EncryptionOption": "SSE_KMS",
 | 
						|
                    "KmsKey": "aws:arn:kms:1233456789:us-east-1:key/number-1",
 | 
						|
                },
 | 
						|
            }
 | 
						|
        },
 | 
						|
        Tags=[],
 | 
						|
    )
 | 
						|
 | 
						|
    try:
 | 
						|
        # The second time should throw an error
 | 
						|
        response = client.create_work_group(
 | 
						|
            Name="athena_workgroup",
 | 
						|
            Description="duplicate",
 | 
						|
            Configuration={
 | 
						|
                "ResultConfiguration": {
 | 
						|
                    "OutputLocation": "s3://bucket-name/prefix/",
 | 
						|
                    "EncryptionConfiguration": {
 | 
						|
                        "EncryptionOption": "SSE_KMS",
 | 
						|
                        "KmsKey": "aws:arn:kms:1233456789:us-east-1:key/number-1",
 | 
						|
                    },
 | 
						|
                }
 | 
						|
            },
 | 
						|
        )
 | 
						|
    except ClientError as err:
 | 
						|
        err.response["Error"]["Code"].should.equal("InvalidRequestException")
 | 
						|
        err.response["Error"]["Message"].should.equal("WorkGroup already exists")
 | 
						|
    else:
 | 
						|
        raise RuntimeError("Should have raised ResourceNotFoundException")
 | 
						|
 | 
						|
    # Then test the work group appears in the work group list
 | 
						|
    response = client.list_work_groups()
 | 
						|
 | 
						|
    response["WorkGroups"].should.have.length_of(1)
 | 
						|
    work_group = response["WorkGroups"][0]
 | 
						|
    work_group["Name"].should.equal("athena_workgroup")
 | 
						|
    work_group["Description"].should.equal("Test work group")
 | 
						|
    work_group["State"].should.equal("ENABLED")
 |