"""pytest configuration for the tests in the PKI app."""fromtypingimportAnyimportpytestfromcryptographyimportx509fromcryptography.hazmat.primitives.asymmetricimportec,rsafromcryptography.hazmat.primitives.asymmetric.rsaimportRSAPrivateKeyfrompki.models.domainimportDomainModelfrompki.models.issuing_caimportIssuingCaModelfrompki.util.x509importCertificateGenerator@pytest.fixture(autouse=True)
[docs]defenable_db_access_for_all_tests(db:None)->None:"""Fixture to enable database access for all tests."""
[docs]defissuing_ca_instance()->dict[str,Any]:"""Fixture for a testing IssuingCaModel instance."""cert,priv_key=CertificateGenerator.create_root_ca(cn=CA_COMMON_NAME)issuing_ca=CertificateGenerator.save_issuing_ca(issuing_ca_cert=cert,private_key=priv_key,chain=[],unique_name=UNIQUE_NAME,ca_type=CA_TYPE)return{'issuing_ca':issuing_ca,'cert':cert,'priv_key':priv_key}
@pytest.fixture
[docs]defdomain_instance(issuing_ca_instance:dict[str,Any])->dict[str,Any]:"""Fixture for a DomainModel instance using a valid issuing CA."""issuing_ca=issuing_ca_instance.get('issuing_ca')priv_key=issuing_ca_instance.get('priv_key')cert=issuing_ca_instance.get('cert')if(notisinstance(issuing_ca,IssuingCaModel)ornotisinstance(cert,x509.Certificate)ornotisinstance(priv_key,RSAPrivateKey)):msg='Issuing CA not created properly'raiseTypeError(msg)domain=DomainModel.objects.create(unique_name=DOMAIN_UNIQUE_NAME,issuing_ca=issuing_ca,is_active=True)issuing_ca_instance.update({'domain':domain})returnissuing_ca_instance