def test_000_201(self): # test case: list two managed domains # setup: add managed domains dnslist = [["test000-201.com", "test000-201a.com", "test000-201b.com"], [ "greenbytes2.de", "www.greenbytes2.de", "mail.greenbytes2.de" ]] for dns in dnslist: assert TestEnv.a2md(["store", "add"] + dns)['rv'] == 0 # list all store content jout = TestEnv.a2md(["store", "list"])['jout'] assert len(jout['output']) == len(dnslist) dnslist.reverse() jout['output'] = sorted(jout['output'], key=md_name) for i in range(0, len(jout['output'])): TestEnv.check_json_contains( jout['output'][i], { "name": dnslist[i][0], "domains": dnslist[i], "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": 0 })
def test_120_001(self): # test case: list two managed domains # setup: add managed domains dnslist = [["test120-001.com", "test120-001a.com", "test120-001b.com"], [ "greenbytes2.de", "www.greenbytes2.de", "mail.greenbytes2.de" ]] for dns in dnslist: assert TestEnv.a2md(["add"] + dns)['rv'] == 0 # list all store content jout = TestEnv.a2md(["list"])['jout'] assert len(jout['output']) == len(dnslist) dnslist.reverse() for i in range(0, len(jout['output'])): TestEnv.check_json_contains( jout['output'][i], { "name": dnslist[i][0], "domains": dnslist[i], "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": TestEnv.MD_S_INCOMPLETE }) # list md by name for dns in ["test120-001.com", "greenbytes2.de"]: md = TestEnv.a2md(["list", dns])['jout']['output'][0] assert md['name'] == dns
def test_110_102(self): # test case: update ca protocol md = TestEnv.a2md([ "update", self.NAME1, "ca", TestEnv.ACME_URL, "FOO"])['jout']['output'][0] TestEnv.check_json_contains( md['ca'], { "url": TestEnv.ACME_URL, "proto": "FOO" }) assert md['state'] == 1
def test_110_203(self): # test case: ignore additional argument md = TestEnv.a2md([ "update", self.NAME1, "account", "test.account.id", "test2.account.id"])['jout']['output'][0] TestEnv.check_json_contains( md['ca'], { "account": "test.account.id", "url": TestEnv.ACME_URL, "proto": "ACME" }) assert md['state'] == 1
def test_110_402(self): # test case: remove tos agreement assert TestEnv.a2md([ "update", self.NAME1, "agreement", TestEnv.ACME_TOS])['rv'] == 0 md = TestEnv.a2md([ "update", self.NAME1, "agreement"])['jout']['output'][0] TestEnv.check_json_contains( md['ca'], { "url": TestEnv.ACME_URL, "proto": "ACME" }) assert md['state'] == 1
def test_110_403(self): # test case: ignore additional arguments md = TestEnv.a2md([ "update", self.NAME1, "agreement", TestEnv.ACME_TOS, TestEnv.ACME_TOS2])['jout']['output'][0] TestEnv.check_json_contains( md['ca'], { "url": TestEnv.ACME_URL, "proto": "ACME", "agreement": TestEnv.ACME_TOS }) assert md['state'] == 1
def test_110_201(self): # test case: remove account ID assert TestEnv.a2md([ "update", self.NAME1, "account", "test.account.id"])['rv'] == 0 md = TestEnv.a2md([ "update", self.NAME1, "account"])['jout']['output'][0] TestEnv.check_json_contains( md['ca'], { "url": TestEnv.ACME_URL, "proto": "ACME" }) assert md['state'] == 1
def test_110_202(self): # test case: change existing account ID assert TestEnv.a2md([ "update", self.NAME1, "account", "test.account.id"])['rv'] == 0 md = TestEnv.a2md([ "update", self.NAME1, "account", "foo.test.com"])['jout']['output'][0] TestEnv.check_json_contains( md['ca'], { "account": "foo.test.com", "url": TestEnv.ACME_URL, "proto": "ACME" }) assert md['state'] == 1
def test_000_101(self): # test case: add > 1 dns managed domain dns = ["greenbytes2.de", "www.greenbytes2.de", "mail.greenbytes2.de"] TestEnv.check_json_contains( TestEnv.a2md(["store", "add"] + dns)['jout']['output'][0], { "name": dns[0], "domains": dns, "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": 0 })
def test_000_100(self): # test case: add a single dns managed domain dns = "greenbytes.de" TestEnv.check_json_contains( TestEnv.a2md(["store", "add", dns])['jout']['output'][0], { "name": dns, "domains": [dns], "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": 0 })
def test_000_104(self): dns = "greenbytes.de" args = [ TestEnv.A2MD, "-d", TestEnv.STORE_DIR, "-j", "store", "add", dns ] jout = TestEnv.run(args)['jout'] assert len(jout['output']) == 1 TestEnv.check_json_contains( jout['output'][0], { "name": dns, "domains": [ dns ], "contacts": [], "ca": { "proto": "ACME" }, "state": 0 })
def test_100_001(self): dns = ["greenbytes2.de", "www.greenbytes2.de", "mail.greenbytes2.de"] jout1 = TestEnv.a2md(["add"] + dns)['jout'] TestEnv.check_json_contains( jout1['output'][0], { "name": dns[0], "domains": dns, "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": TestEnv.MD_S_INCOMPLETE }) assert TestEnv.a2md(["list"])['jout'] == jout1
def test_110_400(self): # test case: add tos agreement output = TestEnv.a2md([ "update", self.NAME1, "agreement", TestEnv.ACME_TOS])['jout']['output'] assert len(output) == 1 TestEnv.check_json_contains( output[0], { "name": self.NAME1, "domains": [ self.NAME1, "www.greenbytes2.de", "mail.greenbytes2.de"], "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME", "agreement": TestEnv.ACME_TOS }, "state": TestEnv.MD_S_INCOMPLETE })
def test_110_300(self): # test case: add contact info mail = "*****@*****.**" output = TestEnv.a2md([ "update", self.NAME1, "contacts", mail])['jout']['output'] assert len(output) == 1 TestEnv.check_json_contains( output[0], { "name": self.NAME1, "domains": [ self.NAME1, "www.greenbytes2.de", "mail.greenbytes2.de"], "contacts": [ "mailto:" + mail ], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": TestEnv.MD_S_INCOMPLETE })
def test_100_004(self): dns = "greenbytes.de" jout1 = TestEnv.run( [TestEnv.A2MD, "-d", TestEnv.STORE_DIR, "-j", "add", dns])['jout'] assert len(jout1['output']) == 1 TestEnv.check_json_contains( jout1['output'][0], { "name": dns, "domains": [dns], "contacts": [], "ca": { "proto": "ACME" }, "state": TestEnv.MD_S_INCOMPLETE }) assert TestEnv.a2md(["list"])['jout'] == jout1
def test_110_100(self): # test case: update CA URL url = "http://localhost.com:9999" output = TestEnv.a2md([ "update", self.NAME1, "ca", url ])['jout']['output'] assert len(output) == 1 TestEnv.check_json_contains( output[0], { "name": self.NAME1, "domains": [ self.NAME1, "www.greenbytes2.de", "mail.greenbytes2.de"], "contacts": [], "ca": { "url": url, "proto": "ACME" }, "state": TestEnv.MD_S_INCOMPLETE })
def test_110_200(self): # test case: update account ID accID = "test.account.id" output = TestEnv.a2md([ "update", self.NAME1, "account", accID])['jout']['output'] assert len(output) == 1 TestEnv.check_json_contains( output[0], { "name": self.NAME1, "domains": [ self.NAME1, "www.greenbytes2.de", "mail.greenbytes2.de"], "contacts": [], "ca": { "account": accID, "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": TestEnv.MD_S_INCOMPLETE })
def test_100_000(self): # test case: add a single dns managed domain dns = "greenbytes.de" jout1 = TestEnv.a2md(["add", dns])['jout'] TestEnv.check_json_contains( jout1['output'][0], { "name": dns, "domains": [dns], "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": TestEnv.MD_S_INCOMPLETE }) # list store content assert TestEnv.a2md(["list"])['jout'] == jout1
def test_110_000(self): dns = ["foo.de", "bar.de"] output1 = TestEnv.a2md(["-vvvv", "update", self.NAME1, "domains"] + dns)['jout']['output'] assert len(output1) == 1 TestEnv.check_json_contains( output1[0], { "name": self.NAME1, "domains": dns, "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": TestEnv.MD_S_INCOMPLETE }) assert TestEnv.a2md(["list"])['jout']['output'][0] == output1[0]
def test_000_102(self): dns1 = [ "test000-102.com", "test000-102a.com", "test000-102b.com" ] assert TestEnv.a2md( [ "store", "add" ] + dns1 )['rv'] == 0 # # add second managed domain dns2 = [ "greenbytes2.de", "www.greenbytes2.de", "mail.greenbytes2.de" ] jout = TestEnv.a2md( [ "store", "add" ] + dns2 )['jout'] # assert: output covers only changed md assert len(jout['output']) == 1 TestEnv.check_json_contains( jout['output'][0], { "name": dns2[0], "domains": dns2, "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": 0 })
def test_100_002(self): dns1 = ["test100-002.com", "test100-002a.com", "test100-002b.com"] TestEnv.a2md(["add"] + dns1) # add second managed domain dns2 = ["greenbytes2.de", "www.greenbytes2.de", "mail.greenbytes2.de"] jout = TestEnv.a2md(["add"] + dns2)['jout'] # assert: output covers only changed md assert len(jout['output']) == 1 TestEnv.check_json_contains( jout['output'][0], { "name": dns2[0], "domains": dns2, "contacts": [], "ca": { "url": TestEnv.ACME_URL, "proto": "ACME" }, "state": TestEnv.MD_S_INCOMPLETE }) assert len(TestEnv.a2md(["list"])['jout']['output']) == 2