def test_get_validation_record_gt_one( self, cfngin_context: MockCFNginContext) -> None: """Test get get_validation_record more than one result.""" # setup context acm_stubber = cfngin_context.add_stubber("acm", "us-east-1") cfngin_context.add_stubber("route53", "us-east-1") cfngin_context.config.namespace = "test" cert_arn = "arn:aws:acm:us-east-1:012345678901:certificate/test" expected_request = {"CertificateArn": cert_arn} cert = Certificate( context=cfngin_context, provider=MagicMock(), domain="example.com", hosted_zone_id="test", ) acm_stubber.add_response( "describe_certificate", gen_certificate( CertificateArn=cert_arn, DomainValidationOptions=[ gen_domain_validation_option(), gen_domain_validation_option(), ], ), expected_request, ) with acm_stubber, pytest.raises(ValueError) as excinfo: cert.get_validation_record(cert_arn=cert_arn) assert "only one option is supported" in str(excinfo.value) acm_stubber.assert_no_pending_responses()
def test_get_validation_record_status_missmatch( self, cfngin_context: MockCFNginContext, check: str, found: str) -> None: """Test get get_validation_record with a missmatched record status.""" # setup context acm_stubber = cfngin_context.add_stubber("acm", "us-east-1") cfngin_context.add_stubber("route53", "us-east-1") cfngin_context.config.namespace = "test" cert_arn = "arn:aws:acm:us-east-1:012345678901:certificate/test" expected_request = {"CertificateArn": cert_arn} cert = Certificate( context=cfngin_context, provider=MagicMock(), domain="example.com", hosted_zone_id="test", ) acm_stubber.add_response( "describe_certificate", gen_certificate( CertificateArn=cert_arn, DomainValidationOptions=[ gen_domain_validation_option(ValidationStatus=found) ], ), expected_request, ) with acm_stubber, pytest.raises(ValueError) as excinfo: cert.get_validation_record(cert_arn=cert_arn, status=check) assert "No validations with status" in str(excinfo.value) acm_stubber.assert_no_pending_responses()
def test_get_validation_record_gt_one(self, cfngin_context): """Test get get_validation_record more than one result.""" # setup context acm_stubber = cfngin_context.add_stubber('acm', 'us-east-1') cfngin_context.add_stubber('route53', 'us-east-1') cfngin_context.config.namespace = 'test' cert_arn = 'arn:aws:acm:us-east-1:012345678901:certificate/test' expected_request = {'CertificateArn': cert_arn} cert = Certificate(context=cfngin_context, provider=MagicMock(), domain='example.com', hosted_zone_id='test') acm_stubber.add_response( 'describe_certificate', gen_certificate(CertificateArn=cert_arn, DomainValidationOptions=[ gen_domain_validation_option(), gen_domain_validation_option() ]), expected_request) with acm_stubber, pytest.raises(ValueError) as excinfo: cert.get_validation_record(cert_arn=cert_arn) assert 'only one option is supported' in str(excinfo.value) acm_stubber.assert_no_pending_responses()
def test_get_validation_record_status_missmatch(self, cfngin_context, check, found): """Test get get_validation_record with a missmatched record status.""" # setup context acm_stubber = cfngin_context.add_stubber('acm', 'us-east-1') cfngin_context.add_stubber('route53', 'us-east-1') cfngin_context.config.namespace = 'test' cert_arn = 'arn:aws:acm:us-east-1:012345678901:certificate/test' expected_request = {'CertificateArn': cert_arn} cert = Certificate(context=cfngin_context, provider=MagicMock(), domain='example.com', hosted_zone_id='test') acm_stubber.add_response( 'describe_certificate', gen_certificate( CertificateArn=cert_arn, DomainValidationOptions=[ gen_domain_validation_option(ValidationStatus=found) ]), expected_request) with acm_stubber, pytest.raises(ValueError) as excinfo: cert.get_validation_record(cert_arn=cert_arn, status=check) assert 'No validations with status' in str(excinfo.value) acm_stubber.assert_no_pending_responses()
def test_get_validation_record( self, cfngin_context: MockCFNginContext, monkeypatch: MonkeyPatch, patch_time: None, status: str, ) -> None: """Test get_validation_record.""" # setup context acm_stubber = cfngin_context.add_stubber("acm", "us-east-1") cfngin_context.add_stubber("route53", "us-east-1") cfngin_context.config.namespace = "test" cert_arn = "arn:aws:acm:us-east-1:012345678901:certificate/test" expected_request = {"CertificateArn": cert_arn} validate_option_missing_record = gen_domain_validation_option( ValidationStatus=status) del validate_option_missing_record["ResourceRecord"] cert = Certificate( context=cfngin_context, provider=MagicMock(), domain="example.com", hosted_zone_id="test", ) monkeypatch.setattr(cert, "get_certificate", lambda: cert_arn) acm_stubber.add_response( "describe_certificate", gen_certificate(CertificateArn=cert_arn), expected_request, ) acm_stubber.add_response( "describe_certificate", gen_certificate( CertificateArn=cert_arn, DomainValidationOptions=[validate_option_missing_record], ), expected_request, ) acm_stubber.add_response( "describe_certificate", gen_certificate( CertificateArn=cert_arn, DomainValidationOptions=[ gen_domain_validation_option(ValidationStatus=status) ], ), expected_request, ) with acm_stubber: assert (cert.get_validation_record(status=status) == gen_domain_validation_option()["ResourceRecord"]) acm_stubber.assert_no_pending_responses()
def test_get_validation_record(self, cfngin_context, monkeypatch, patch_time, status): """Test get_validation_record.""" # setup context acm_stubber = cfngin_context.add_stubber('acm', 'us-east-1') cfngin_context.add_stubber('route53', 'us-east-1') cfngin_context.config.namespace = 'test' cert_arn = 'arn:aws:acm:us-east-1:012345678901:certificate/test' expected_request = {'CertificateArn': cert_arn} validate_option_missing_record = gen_domain_validation_option( ValidationStatus=status) del validate_option_missing_record['ResourceRecord'] cert = Certificate(context=cfngin_context, provider=MagicMock(), domain='example.com', hosted_zone_id='test') monkeypatch.setattr(cert, 'get_certificate', lambda: cert_arn) acm_stubber.add_response('describe_certificate', gen_certificate(CertificateArn=cert_arn), expected_request) acm_stubber.add_response( 'describe_certificate', gen_certificate( CertificateArn=cert_arn, DomainValidationOptions=[validate_option_missing_record]), expected_request) acm_stubber.add_response( 'describe_certificate', gen_certificate( CertificateArn=cert_arn, DomainValidationOptions=[ gen_domain_validation_option(ValidationStatus=status) ]), expected_request) with acm_stubber: assert cert.get_validation_record(status=status) == \ gen_domain_validation_option()['ResourceRecord'] acm_stubber.assert_no_pending_responses()