X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=blobdiff_plain;f=tests%2Ftest_crl.py;fp=tests%2Ftest_crl.py;h=bb8748f4d97bfeb758f4d1b453faec88caddf38e;hp=fcfcb9e379ab92d001dad67ceacc235e5735b0aa;hb=659eb0e090ad8c9209c4e5b030806125509844f9;hpb=d16d490552c084fb018ba8eb077c94d8b2d9326d diff --git a/tests/test_crl.py b/tests/test_crl.py index fcfcb9e..bb8748f 100644 --- a/tests/test_crl.py +++ b/tests/test_crl.py @@ -17,7 +17,9 @@ """CRL related schemas, just to test the performance with them """ +from io import BytesIO from os.path import exists +from sys import getsizeof from time import time from unittest import skipIf from unittest import TestCase @@ -76,7 +78,7 @@ CRL_PATH = "revoke.crl" @skipIf(not exists(CRL_PATH), "CACert's revoke.crl not found") class TestCACert(TestCase): - def test_cer(self): + def test_cer_and_2pass(self): with open(CRL_PATH, "rb") as fd: raw = fd.read() print("DER read") @@ -84,16 +86,23 @@ class TestCACert(TestCase): crl1 = CertificateList().decod(raw) print("DER decoded", time() - start) start = time() + der_raw = crl1.encode() + print("DER encoded", time() - start) + self.assertSequenceEqual(der_raw, raw) + buf = BytesIO() + start = time() + _, state = crl1.encode1st() + print("1st pass state size", getsizeof(state)) + crl1.encode2nd(buf.write, iter(state)) + print("DER 2pass encoded", time() - start) + self.assertSequenceEqual(buf.getvalue(), raw) + start = time() cer_raw = encode_cer(crl1) print("CER encoded", time() - start) start = time() crl2 = CertificateList().decod(cer_raw, ctx={"bered": True}) print("CER decoded", time() - start) self.assertEqual(crl2, crl1) - start = time() - der_raw = crl2.encode() - print("DER encoded", time() - start) - self.assertSequenceEqual(der_raw, raw) @skipIf(PY2, "Py27 mmap does not implement buffer protocol") def test_mmaped(self):