Fix: yield tests ignored by pytest runner (#3500)

Closes #3499
This commit is contained in:
Brian Pandola 2020-11-25 02:48:05 -08:00 committed by GitHub
parent 5a2cbf1eca
commit d58d3e2c2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,6 +3,7 @@ import json
import boto3 import boto3
from botocore.exceptions import ClientError from botocore.exceptions import ClientError
import pytest import pytest
import sure # noqa
from moto import mock_iam from moto import mock_iam
@ -1611,31 +1612,25 @@ valid_policy_documents = [
] ]
def test_create_policy_with_invalid_policy_documents(): @pytest.mark.parametrize("invalid_policy_document", invalid_policy_document_test_cases)
for test_case in invalid_policy_document_test_cases:
yield check_create_policy_with_invalid_policy_document, test_case
def test_create_policy_with_valid_policy_documents():
for valid_policy_document in valid_policy_documents:
yield check_create_policy_with_valid_policy_document, valid_policy_document
@mock_iam @mock_iam
def check_create_policy_with_invalid_policy_document(test_case): def test_create_policy_with_invalid_policy_document(invalid_policy_document):
conn = boto3.client("iam", region_name="us-east-1") conn = boto3.client("iam", region_name="us-east-1")
with pytest.raises(ClientError) as ex: with pytest.raises(ClientError) as ex:
conn.create_policy( conn.create_policy(
PolicyName="TestCreatePolicy", PolicyName="TestCreatePolicy",
PolicyDocument=json.dumps(test_case["document"]), PolicyDocument=json.dumps(invalid_policy_document["document"]),
) )
ex.value.response["Error"]["Code"].should.equal("MalformedPolicyDocument") ex.value.response["Error"]["Code"].should.equal("MalformedPolicyDocument")
ex.value.response["ResponseMetadata"]["HTTPStatusCode"].should.equal(400) ex.value.response["ResponseMetadata"]["HTTPStatusCode"].should.equal(400)
ex.value.response["Error"]["Message"].should.equal(test_case["error_message"]) ex.value.response["Error"]["Message"].should.equal(
invalid_policy_document["error_message"]
)
@pytest.mark.parametrize("valid_policy_document", valid_policy_documents)
@mock_iam @mock_iam
def check_create_policy_with_valid_policy_document(valid_policy_document): def test_create_policy_with_valid_policy_document(valid_policy_document):
conn = boto3.client("iam", region_name="us-east-1") conn = boto3.client("iam", region_name="us-east-1")
conn.create_policy( conn.create_policy(
PolicyName="TestCreatePolicy", PolicyDocument=json.dumps(valid_policy_document) PolicyName="TestCreatePolicy", PolicyDocument=json.dumps(valid_policy_document)