def test_certificate_comparison(): cert2 = CERT1.copy() cert2['CreatedAt'] = datetime(2016, 4, 2, 12, 13, 14, tzinfo=timezone.utc) certificate1 = ACMCertificate.from_boto_dict(CERT1) certificate2 = ACMCertificate.from_boto_dict(cert2) assert certificate1 < certificate2 # this may look weird but equality is tested by ARN assert certificate1 == certificate2
def test_certificate_matches(): certificate1 = ACMCertificate.from_boto_dict(CERT1) assert certificate1.matches('myapp.senza.example.com') assert certificate1.matches('myapp.app.example.com') assert certificate1.matches('myapp.senza.aws.example.com') assert not certificate1.matches('zalando.de') assert not certificate1.matches('sub.myapp.senza.aws.example.com')
def test_certificate_valid(): certificate1 = ACMCertificate.from_boto_dict(CERT1) assert certificate1.domain_name == '*.senza.example.com' assert certificate1.is_valid(when=datetime(2016, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1.is_valid(when=datetime(2018, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1.is_valid(when=datetime(2013, 4, 2, 10, 11, 12, tzinfo=timezone.utc)) cert1_revoked = CERT1.copy() cert1_revoked['Status'] = 'REVOKED' certificate1_revoked = ACMCertificate.from_boto_dict(cert1_revoked) assert certificate1_revoked.domain_name == '*.senza.example.com' assert not certificate1_revoked.is_valid(when=datetime(2016, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1_revoked.is_valid(when=datetime(2018, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1_revoked.is_valid(when=datetime(2013, 4, 2, 10, 11, 12, tzinfo=timezone.utc))
def test_certificate_valid(): certificate1 = ACMCertificate.from_boto_dict(CERT1) assert certificate1.domain_name == '*.senza.example.com' assert certificate1.is_valid( when=datetime(2016, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1.is_valid( when=datetime(2018, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1.is_valid( when=datetime(2013, 4, 2, 10, 11, 12, tzinfo=timezone.utc)) cert1_revoked = CERT1.copy() cert1_revoked['Status'] = 'REVOKED' certificate1_revoked = ACMCertificate.from_boto_dict(cert1_revoked) assert certificate1_revoked.domain_name == '*.senza.example.com' assert not certificate1_revoked.is_valid( when=datetime(2016, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1_revoked.is_valid( when=datetime(2018, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1_revoked.is_valid( when=datetime(2013, 4, 2, 10, 11, 12, tzinfo=timezone.utc)) cert_invalid = ACMCertificate.from_boto_dict(CERT_VALIDATION_TIMED_OUT) assert not cert_invalid.is_valid()
def test_certificate_get_by_arn(monkeypatch): m_client = MagicMock() m_client.return_value = m_client m_client.describe_certificate.return_value = {'Certificate': CERT1} monkeypatch.setattr('boto3.client', m_client) certificate1 = ACMCertificate.get_by_arn('arn:aws:acm:eu-west-1:cert') assert certificate1.domain_name == '*.senza.example.com' assert certificate1.is_valid(when=datetime(2016, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1.is_valid(when=datetime(2018, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1.is_valid(when=datetime(2013, 4, 2, 10, 11, 12, tzinfo=timezone.utc)) assert certificate1.status == ACMCertificateStatus.issued
def test_certificate_get_by_arn(monkeypatch): m_client = MagicMock() m_client.return_value = m_client m_client.describe_certificate.return_value = {'Certificate': CERT1} monkeypatch.setattr('boto3.client', m_client) certificate1 = ACMCertificate.get_by_arn('dummy-region', 'arn:aws:acm:eu-west-1:cert') assert certificate1.domain_name == '*.senza.example.com' assert certificate1.is_valid( when=datetime(2016, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1.is_valid( when=datetime(2018, 4, 5, 12, 14, 14, tzinfo=timezone.utc)) assert not certificate1.is_valid( when=datetime(2013, 4, 2, 10, 11, 12, tzinfo=timezone.utc)) assert certificate1.status == ACMCertificateStatus.issued
def test_arn_is_acm_certificate(): assert ACMCertificate.arn_is_acm_certificate('arn:aws:acm:certificate') assert not ACMCertificate.arn_is_acm_certificate('arn:aws:iam:certificate') assert not ACMCertificate.arn_is_acm_certificate(None)