Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Apache/test/modules/md/   (Apache Software Stiftung Version 2.4.65©)  Datei vom 16.4.2022 mit Größe 3 kB image not shown  

Quelle  test_120_reg_list.py   Sprache: Python

 
# test mod_md acme terms-of-service handling

from shutil import copyfile

import pytest

from .md_env import MDTestEnv


@pytest.mark.skipif(condition=not MDTestEnv.has_a2md(), reason="no a2md available")
@pytest.mark.skipif(condition=not MDTestEnv.has_acme_server(),
                    reason="no ACME test server configured")
class TestRegAdd:

    @pytest.fixture(autouse=True, scope='function')
    def _method_scope(self, env):
        env.clear_store()

    # test case: list empty store
    def test_md_120_000(self, env):
        assert env.a2md(["list"]).json == env.EMPTY_JOUT

    # test case: list two managed domains
    def test_md_120_001(self, env):
        domains = [ 
            ["test120-001.com""test120-001a.com""test120-001b.com"],
            ["greenbytes2.de""www.greenbytes2.de""mail.greenbytes2.de"]
        ]
        for dns in domains:
            assert env.a2md(["add"] + dns).exit_code == 0
        #
        # list all store content
        jout = env.a2md(["list"]).json
        assert len(jout['output']) == len(domains)
        domains.reverse()
        for i in range(0, len(jout['output'])):
            env.check_json_contains(jout['output'][i], {
                "name": domains[i][0],
                "domains": domains[i],
                "contacts": [],
                "ca": {
                    "urls": [env.acme_url],
                    "proto""ACME"
                },
                "state": env.MD_S_INCOMPLETE
            })
        # list md by name
        for dns in ["test120-001.com""greenbytes2.de"]:
            md = env.a2md(["list", dns]).json['output'][0]
            assert md['name'] == dns

    # test case: validate md state in store
    def test_md_120_002(self, env):
        # check: md without pkey/cert -> INCOMPLETE
        domain = f"test1.{env.http_tld}"
        assert env.a2md(["add", domain]).exit_code == 0
        assert env.a2md(["update", domain, "contacts""admin@" + domain]).exit_code == 0
        assert env.a2md(["update", domain, "agreement", env.acme_tos]).exit_code == 0
        assert env.a2md(["list", domain]).json['output'][0]['state'] == env.MD_S_INCOMPLETE
        # check: valid pkey/cert -> COMPLETE
        cred = env.get_credentials_for_name(domain)[0]
        copyfile(cred.pkey_file, env.store_domain_file(domain, 'privkey.pem'))
        copyfile(cred.cert_file, env.store_domain_file(domain, 'pubcert.pem'))
        assert env.a2md(["list", domain]).json['output'][0]['state'] == env.MD_S_COMPLETE
        # check: expired cert -> EXPIRED
        cred = env.get_credentials_for_name(f"expired.{env.http_tld}")[0]
        copyfile(cred.pkey_file, env.store_domain_file(domain, 'privkey.pem'))
        copyfile(cred.cert_file, env.store_domain_file(domain, 'pubcert.pem'))
        out = env.a2md(["list", domain]).json['output'][0]
        assert out['state'] == env.MD_S_INCOMPLETE
        assert out['renew'is True

    # test case: broken cert file
    def test_md_120_003(self, env):
        domain = f"test1.{env.http_tld}"
        assert env.a2md(["add", domain]).exit_code == 0
        assert env.a2md(["update", domain, "contacts""admin@" + domain]).exit_code == 0
        assert env.a2md(["update", domain, "agreement", env.acme_tos]).exit_code == 0
        # check: valid pkey/cert -> COMPLETE
        cred = env.get_credentials_for_name(domain)[0]
        copyfile(cred.pkey_file, env.store_domain_file(domain, 'privkey.pem'))
        copyfile(cred.cert_file, env.store_domain_file(domain, 'pubcert.pem'))
        assert env.a2md(["list", domain]).json['output'][0]['state'] == env.MD_S_COMPLETE
        # check: replace cert by broken file -> ERROR
        with open(env.store_domain_file(domain, 'pubcert.pem'), 'w'as fd:
            fd.write("dummy\n")
        assert env.a2md(["list", domain]).json['output'][0]['state'] == env.MD_S_INCOMPLETE

Messung V0.5
C=94 H=97 G=95

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.