diff --git a/tests/test_codecommit/test_codecommit.py b/tests/test_codecommit/test_codecommit.py index 8be10033a..6e916f20a 100644 --- a/tests/test_codecommit/test_codecommit.py +++ b/tests/test_codecommit/test_codecommit.py @@ -40,6 +40,11 @@ def test_create_repository(): ) response["repositoryMetadata"]["accountId"].should.equal(ACCOUNT_ID) + +@mock_codecommit +def test_create_repository_without_description(): + client = boto3.client("codecommit", region_name="eu-central-1") + response = client.create_repository(repositoryName="repository_two") response.should_not.be.none @@ -48,9 +53,39 @@ def test_create_repository(): "repository_two" ) response.get("repositoryMetadata").get("repositoryDescription").should.be.none + response["repositoryMetadata"].should_not.be.none + response["repositoryMetadata"]["creationDate"].should_not.be.none + response["repositoryMetadata"]["lastModifiedDate"].should_not.be.none + response["repositoryMetadata"]["repositoryId"].should_not.be.empty + response["repositoryMetadata"]["cloneUrlSsh"].should.equal( + "ssh://git-codecommit.{0}.amazonaws.com/v1/repos/{1}".format( + "eu-central-1", "repository_two" + ) + ) + response["repositoryMetadata"]["cloneUrlHttp"].should.equal( + "https://git-codecommit.{0}.amazonaws.com/v1/repos/{1}".format( + "eu-central-1", "repository_two" + ) + ) + response["repositoryMetadata"]["Arn"].should.equal( + "arn:aws:codecommit:{0}:{1}:{2}".format( + "eu-central-1", ACCOUNT_ID, "repository_two" + ) + ) + response["repositoryMetadata"]["accountId"].should.equal(ACCOUNT_ID) + + +@mock_codecommit +def test_create_repository_repository_name_exists(): + client = boto3.client("codecommit", region_name="eu-central-1") + + client.create_repository(repositoryName="repository_two") with assert_raises(ClientError) as e: - client.create_repository(repositoryName="repository_two") + client.create_repository( + repositoryName="repository_two", + repositoryDescription="description repo two", + ) ex = e.exception ex.operation_name.should.equal("CreateRepository") ex.response["ResponseMetadata"]["HTTPStatusCode"].should.equal(400) @@ -60,6 +95,25 @@ def test_create_repository(): ) +@mock_codecommit +def test_create_repository_invalid_repository_name(): + client = boto3.client("codecommit", region_name="eu-central-1") + + with assert_raises(ClientError) as e: + client.create_repository(repositoryName="in_123_valid_@#$_characters") + ex = e.exception + ex.operation_name.should.equal("CreateRepository") + ex.response["ResponseMetadata"]["HTTPStatusCode"].should.equal(400) + ex.response["Error"]["Code"].should.contain("InvalidRepositoryNameException") + ex.response["Error"]["Message"].should.equal( + "The repository name is not valid. Repository names can be any valid " + "combination of letters, numbers, " + "periods, underscores, and dashes between 1 and 100 characters in " + "length. Names are case sensitive. " + "For more information, see Limits in the AWS CodeCommit User Guide. " + ) + + @mock_codecommit def test_get_repository(): client = boto3.client("codecommit", region_name="eu-central-1") @@ -114,11 +168,11 @@ def test_get_repository(): @mock_codecommit -def test_invalid_repository_name(): +def test_get_repository_invalid_repository_name(): client = boto3.client("codecommit", region_name="eu-central-1") with assert_raises(ClientError) as e: - client.create_repository(repositoryName="repository_one-@#@") + client.get_repository(repositoryName="repository_one-@#@") ex = e.exception ex.response["ResponseMetadata"]["HTTPStatusCode"].should.equal(400) ex.response["Error"]["Code"].should.contain("InvalidRepositoryNameException") @@ -129,14 +183,6 @@ def test_invalid_repository_name(): "length. Names are case sensitive. " "For more information, see Limits in the AWS CodeCommit User Guide. " ) - with assert_raises(ClientError) as e: - client.create_repository(repositoryName="!_repository_one") - - with assert_raises(ClientError) as e: - client.create_repository(repositoryName="_rep@ository_one") - - with assert_raises(ClientError) as e: - client.get_repository(repositoryName="_rep@ository_one") @mock_codecommit