aboutsummaryrefslogtreecommitdiff
path: root/rpkid/xml-parse-test.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2008-05-16 22:11:00 +0000
committerRob Austein <sra@hactrn.net>2008-05-16 22:11:00 +0000
commit96d78b71fa5457c557bfa1373e02bc4655577fcd (patch)
tree9fc01360b96b0541e8477c57837e486c49ff5b76 /rpkid/xml-parse-test.py
parent0031405bc5b28b3e6c9dd3ada8477ae04be89c07 (diff)
Rework to be quieter when quiet and more informative when verbose.
svn path=/rpkid/left-right-protocol-samples/pdu.053.xml; revision=1790
Diffstat (limited to 'rpkid/xml-parse-test.py')
-rwxr-xr-xrpkid/xml-parse-test.py52
1 files changed, 35 insertions, 17 deletions
diff --git a/rpkid/xml-parse-test.py b/rpkid/xml-parse-test.py
index 3e3b20ef..15e787da 100755
--- a/rpkid/xml-parse-test.py
+++ b/rpkid/xml-parse-test.py
@@ -17,43 +17,61 @@
import glob, xml.sax, lxml.etree, lxml.sax, POW, POW.pkix
import rpki.up_down, rpki.left_right, rpki.relaxng
-verbose = True
+verbose = False
def test(fileglob, rng, sax_handler, encoding, tester = None):
files = glob.glob(fileglob)
files.sort()
for f in files:
- print "\n<!--", f, "-->"
+ print "<!--", f, "-->"
handler = sax_handler()
elt_in = lxml.etree.parse(f).getroot()
+ if verbose:
+ print "<!-- Input -->"
+ print lxml.etree.tostring(elt_in, pretty_print = True, encoding = encoding, xml_declaration = True)
rng.assertValid(elt_in)
lxml.sax.saxify(elt_in, handler)
elt_out = handler.result.toXML()
+ if verbose:
+ print "<!-- Output -->"
+ print lxml.etree.tostring(elt_out, pretty_print = True, encoding = encoding, xml_declaration = True)
rng.assertValid(elt_out)
if (tester):
tester(elt_in, elt_out, handler.result)
- print lxml.etree.tostring(elt_out, pretty_print = True, encoding = encoding, xml_declaration = True)
+ if verbose:
+ print
-def pprint_cert(cert):
- print cert.get_POW().pprint()
+def pprint(pairs):
+ if verbose:
+ for thing, name in pairs:
+ if thing is not None:
+ print "[%s]" % name
+ print thing.get_POW().pprint()
def ud_tester(elt_in, elt_out, msg):
assert isinstance(msg, rpki.up_down.message_pdu)
- if verbose:
- if isinstance(msg.payload, rpki.up_down.list_response_pdu):
- for c in msg.payload.classes:
- for i in range(len(c.certs)):
- print "[Certificate #%d]" % i
- pprint_cert(c.certs[i].cert)
- print "[Issuer]"
- pprint_cert(c.issuer)
+ if isinstance(msg.payload, rpki.up_down.list_response_pdu):
+ for c in msg.payload.classes:
+ pprint([(c.certs[i].cert, ("%s certificate #%d" % (c.class_name, i))) for i in xrange(len(c.certs))] + [(c.issuer, ("%s issuer" % c.class_name))])
def lr_tester(elt_in, elt_out, msg):
assert isinstance(msg, rpki.left_right.msg)
- if verbose:
- for bsc in [x for x in msg if isinstance(x, rpki.left_right.bsc_elt)]:
- if bsc.signing_cert is not None:
- pprint_cert(bsc.signing_cert)
+ for obj in msg:
+ if isinstance(obj, rpki.left_right.self_elt):
+ pprint(((obj.bpki_cert, "BPKI cert"),
+ (obj.bpki_glue, "BPKI glue")))
+ if isinstance(obj, rpki.left_right.bsc_elt):
+ pprint(((obj.signing_cert, "Signing certificate"),
+ (obj.signing_cert_crl, "Signing certificate CRL")))
+ # (obj.pkcs10_request, "PKCS #10 request")
+ if isinstance(obj, (rpki.left_right.parent_elt, rpki.left_right.repository_elt)):
+ pprint(((obj.bpki_cms_cert, "CMS certificate"),
+ (obj.bpki_cms_glue, "CMS glue"),
+ (obj.bpki_https_cert, "HTTPS certificate"),
+ (obj.bpki_https_glue, "HTTPS glue")))
+ if isinstance(obj, rpki.left_right.child_elt):
+ pprint(((obj.bpki_cert, "Certificate"),
+ (obj.bpki_glue, "Glue")))
test(fileglob = "up-down-protocol-samples/*.xml",
rng = rpki.relaxng.up_down,