mercredi 13 novembre 2019

multiple assert in a nose test

I am novice with python and the framework nose I implement this test:

from API_connector.Authenticate import *
from API_connector.Certificate import *
from API_connector.Report import *
from API_connector.csr import *
from database_connector.global_settings import *

auth=Authentication()
token=auth.post_token()
crt=Certificate(token)
rpt=Report(token)
csr=CSR(token)
db=Database()
cnx=db.open_connection()
print(cnx)
# created_jobs=db.personalized_select("certificate_instance_id = {}".format(12011),"bcs_job")
# for job in created_jobs:
#     print(job[0])
def test_renew():

   print("begin test")
   #post report with expired certifs
   rpt_with_expired_cert= {
                            "agentId": 5253,
                            "reportType": "DISCOVERY_REPORT",
                            "hosts": [
                                {
                                "name": "discovered_host_1",
                                "description": "discovered host 1",
                                "fqdn": "host1.soc.fr",
                                "protocol": "udp",
                                "port": 53,
                                "applications": [
                                    {
                                        "name": "NGINX soc",
                                        "description": "nginx.soc.fr",
                                        "product": "NGINX",
                                        "version": "1.0",
                                        "absConfPath": "/etc/nginx1/apache.conf",
                                        "absAppPath": "/app/racine2/path/",
                                        "certificates": [
                                            {
                                                "certB64":"-----BEGIN CERTIFICATE-----\nMIID6jCCAtKgAwIBAgIQVddljJ2Gt23mgTtB0W5OIzANBgkqhkiG9w0BAQsFADBNMUswSQYDVQQDHkIATQBTAC0ATwByAGcAYQBuAGkAegBhAHQAaQBvAG4ALQBQADIAUAAtAEEAYwBjAGUAcwBzACAAWwAyADAAMQA5AF0wHhcNMTkxMTExMDk1NTAxWhcNMTkxMTEyMTAwMDAxWjBlMTQwMgYKCZImiZPyLGQBGRYkYzg2ZGJjZDAtMWY2Mi00ZGRiLWE4OTYtYTZmZjVlMjQ3YzU3MS0wKwYDVQQDDCQ3OWJlMTQ5Mi1iNDBmLTRjNDItODllYS0wNzI4YjFhN2YxZjYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD3iwveaoyrqEMAJiNw0BrLf+yCiTCTKWDWcplOFCYUgtCT2eDh0d0GLIVDRjhxTO+jbNUP/hxswOTtfRJ5mSyFRXQgZ/MUE3qY2IR345hie3yDL0XjZmDqx0X3uq7YN/ZSYDnArpeUf2Y7+Pu4a5nuobhSMPwChMc0nw2w0T53yyYyHoe2W7+UU6FbBoZZHbLqhzx9Z2QnA3Xmz/I/jMVEU22c3LFI4i1XjPSAHKTB1KTxNa7RkxhBR+JlK37Ad0AhKbZ3JB/z+gJOCYR4dA267qsTXE2XdjC3LLCQieC4c4QYx2mRkmMxGsv/jDZWJUZ25cRGKJOfIX3gpuNUBhKhAgMBAAGjga0wgaowDgYDVR0PAQH/BAQDAgWgMGYGA1UdEQRfMF2CD0RFU0tUT1AtNzhGSFRBQoIPREVTS1RPUC03OEZIVEFCggwxOTIuMTY4LjU2LjGCDjE2OS4yNTQuMTk5LjM0gg0xNjkuMjU0LjMyLjEwggwxOTIuMTY4LjAuMzkwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGwYJKwYBBAGCNxUKBA4wDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAUkXsT9owGU6WJ8AYQSEcHKz45dsTwTPrkHqjlXSuCZBlFZ5a0ETGUaMxmMZi5o6v2bIwdWKDP1ApOoAOEt++epO24M/BkY0NLHO/ekUC0+03KH6hekAOUHg2k0VM2l+cSVb8/bqyc6aznwwPx28Eem17aGG0fv5zi+g6fXlt8YEsNfYr8j7WMtjfST7QMiDxjH4DVPT3pGPjStM6r4hn1rHRcU6tOrlxvq9b0p95NyH+PxP+Jmc+/94wedY/1RmAkCeg3ZEZU5k6/P0zpKKH/EQxryRoacQZTzsjEuHMrT1wgh+alNZHKnlGaqeAP28Y87htv9zJqwu63yx4/sEsMg==\n-----END CERTIFICATE-----",
                                                "isKeyStore": True,
                                                "certFileExt": "pem",
                                                "certFileName": "host1.soc.fr.pem",
                                                "certAbsPath": "/data/certs/apache/host1.soc.fr.pem",
                                                "privateKeyPath": "/data/keys/apache/host1.soc.fr.key.pem"
                                            },   
                                            {
                                                "certB64":"-----BEGIN CERTIFICATE-----\n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\n-----END CERTIFICATE-----",
                                                "isKeyStore": True,
                                                "certFileExt": "pem",
                                                "certFileName": "host1cert2.soc.fr.pem",
                                                "certAbsPath": "/data/certs/apache/host1.soc.fr.pem",
                                                "privateKeyPath": "/data/keys/apache/host1.soc.fr.key.pem"
                                            }
                                        ]
                                    }
                                ]
                            }
                            ],
                            "startedAt": "2019-11-07T13:33:00.2095",
                            "finishedAt": "2019-11-07T17:33:40.2095"
                        }
print("after data")
rpt_status=rpt.post_report(rpt_with_expired_cert)
assert rpt_status==201, "The report is not even created, it returns {}".format(rpt_status)
expired_certs=crt.renew(2)
csr_example=["-----BEGIN CERTIFICATE REQUEST-----MIIBLzCB1QIBADBzMQswCQYDVQQGEwJGUjEgMB4GA1UECgwXUEFSSVMgTk9UQUlSRVMgU0VSVklDRVMxDjAMBgNVBAsMBTc1NDAwMTIwMAYDVQQDDClibG9ja2NoYWluLWFkbWluMS5ibG9ja2NoYWluLW5vdGFyaWFsZS5mcjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABG9u8LBkcWej3BIVHt0PTyE5hp7DySl7ymsJaDMuhD4brhaXdMLJB9ikWDJsKAoCeHCGrt4JGlQUZTfwwm24TdigADAKBggqhkjOPQQDAgNJADBGAiEAzuOJuU5Izb8AqXqNod3T3emyBP8AC2SIeT6OcORc4zgCIQD4FlQiXr35tkPPAQ9kIwKPf17jMxZHWIaMT//3T6N+wA==-----END CERTIFICATE REQUEST-----","-----BEGIN CERTIFICATE REQUEST-----MIICijCCAXICAQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKLkunrsa+fFC6v088Pyt97xr9taTIJgGRDYbay4pD0+qSvwgRwy8ss95OZO0k/B5xXFKfq6Z3YyoQYLUAanHTB6YAOrqoXfdVhXLMt8XChfKdg2OQEhfKh80uSQjcXwyhXGua/rO72wQAjv8NJy7gZWbAyK5WLu6p0ctjYCytofD2Vw6QwAKSidT24PKMiSS58SdEuwhRf/xxk/tzxXw8Vscgk3gXH+s4HeC5eQiJd6MPpJDuPZ/wsYOVt/k0hx1XpWJJPqTuPRLqtxe3lkMycBX8e7XhTohQXufgp4C3A82TmnIEgzzVI/5zoRyFctwvHx0C6Gk8hKVMaVCR3HC3MCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQCXjbVWnZnT7x42+1PK6w2ykpaqxj3Xs1ysy0lwqTcxE2nqpW2KaUDnK0T2+kxo9Rm1M5jQHpVk5lmI23fswr2zmXGBCJEE3NyWfDERwZfiE4fvM09A1TlkCK/9ub8nucWfc8ylFFehV6o1K8V0BXafhRHx+VBMaOsosPTCBdlqILWzgSsglgiU7bWa8Z5BO+DEMExDv3cPVRinqC1SVf0yaHIU9nwpwSd/r37e0Slh3I9Svf4T0toCeXil2m+rV3nqKkEjgebsOqibt1/vR4dSnk5Ju5RbMmbzTK9uFVEf5QuLsPDZ+dB9yDVTRreAPWe68Knt/bQtjGAuILZ5tF/l-----END CERTIFICATE REQUEST-----","-----BEGIN CERTIFICATE REQUEST-----MIICijCCAXICAQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAODXuAm4chu5A7WNaucc/kcf3M/IsWuS2jqP22OhzXF99/rYn9nZwo3SEmQlwkQn1O/P+SxujZzg+XHqwYrviC99+D1uJxDcx8CsBnoWfIewRLrUYEzKtXrFGOos1GyECouKr45670rdGSoJn4DfipmB/GVMSVPtlc6EttmgsE6rLkQ7+Ju1BCOWa7YYLTc7ew8vI2f2bPjTnOz5ijxLmQ6ptzjPQ4YV1g6A21cW924f1kgQ5loJcNhnY5mfveVxd6pfxieWLeHxxjthZ2PqvQHbTK4b5JmaG1dMeTQS2a5Lb5PmMh+EXAdZ7Xax/RZdCf2/8A9l0w1J3yBpc33yRisCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQCJTNXr6pX6GRsW7ocriVoKWO+9OQgGFSp/iKCl29ImSXJvN50q6bCjqtwmjflyter9BPaT0VmpHIXCYq2fXeIHQRIiQqtX3ufe07KHeCArfAN/T3pIrcU+xB3Rn97ZQAYnY1SYEM/2aJjo9ZNjouBoAoey+E3DhOZkkFlxvtAPnzJ+FBKhk+8jj1KfyYWjdKswoFgihfq6b+HjNq55kxjmqtNsOhx6ZMio1icuFXrpe0KD+Pd38S9849mtpeyUQ0cUshJ8axyJxfFp5iOkkVnIDD4Ui0lAUBoCPZZ9c5GHt/Mw1Wy63ZQDBKgtMTaUXMcMOsAoHi0JKeyRm6t25+sN-----END CERTIFICATE REQUEST-----"]
print ("heeere")
for cert, i in zip(expired_certs,csr_example):
    #select cert_inst_id for each certif to renew
    instance_ids=db.personalized_select("certificate_id = {}".format(cert["id"]),"bcs_certificate_instance")
    #check if job"renew" is created for each instance_id
    for j,inst in enumerate(instance_ids):
        print(inst[j])
        created_jobs=db.personalized_select("certificate_instance_id = {}  AND action = 'RENEW'".format(inst[j]),"bcs_job")
    assert len(instance_ids)==len(created_jobs), "Number of instance and jobs RENEW is not coherent"
    csr.create_csr(i,cert["securityPolicy"]["id"],cert["id"])
    print("csr created for {}".format(cert["id"]))
    request_id=csr.sign_csr(cert["id"])
    print("le request id est {}".format(request_id))
    renewed_cert=csr.check_req_id(request_id)
    print("le certif renouvle est: {}".format(renewed_cert))
    #check if each instance is updated with the new cert_id
    instance_id_up=db.personalized_select("certificate_id = {}".format(renewed_cert["id"]),"bcs_certificate_instance")
    assert len(instance_ids)==len(instance_id_up), "Some instances are not updated with the new cert_id"
    #check if a job deploy is created for each instance
    for k,inst_up in enumerate(instance_id_up):
        jobs_deploy=db.personalized_select("certificate_instance_id = {} AND action = 'DEPLOY_CERT'".format(inst_up[k]),"bcs_job")
    assert len(jobs_deploy)== len(instance_id_up), "Number of instance and jobs DEPLOY is not coherent"
    #check if the ancestor of old cert is the new cert_id
    ancestor_ids=db.personalized_select("ancestor_id = {}".format(cert["id"]),"bcs_certificate")
    for ancestor in ancestor_ids:
        print("ancestor_id is {}".format(ancestor))
        print("new cert is {}".format(renewed_cert["id"]))
        assert (ancestor==["id"]) , "l'ancestor is wrong"

print("test is over")
return None

I really don't know if I have the right to use multiple asserts in the same test And I don't know why the "print" inside the code are not displayed in the console. If the test pass i just have Can you help me how should i test using python and nose and how to divide this test if I am not respecting testing rules? Thank you

Ran 1 test in 2.810s OK

Aucun commentaire:

Enregistrer un commentaire