diff options
| author | Kali Kaneko <kali@leap.se> | 2016-04-23 23:32:27 -0400 | 
|---|---|---|
| committer | Kali Kaneko <kali@leap.se> | 2016-04-23 23:32:27 -0400 | 
| commit | 04e5136c3d2fbcfd30a374f95d8b7c5f819e0d27 (patch) | |
| tree | 4f1bc6493dc2979826c2405a60d01f52bdd80b98 | |
| parent | f07b05c98563dc8f3ad24cd17e0c1e1f2c557be8 (diff) | |
test stub
| -rw-r--r-- | tests/test_holes.py | 73 | 
1 files changed, 73 insertions, 0 deletions
| diff --git a/tests/test_holes.py b/tests/test_holes.py new file mode 100644 index 0000000..92ac60e --- /dev/null +++ b/tests/test_holes.py @@ -0,0 +1,73 @@ +import os +from email.parser import Parser + +import unittest +import gnupg + +from memoryhole import memoryhole + + +here = os.path.dirname(os.path.realpath(__file__)) +corpus = os.path.join(here, 'corpus') +gpgdata = os.path.join(corpus, 'OpenPGP') + + +class MemoryHoleTest(unittest.TestCase): + +    def setUp(self): +        self.gpg = gnupg.GPG( +            binary='/usr/bin/gpg', +            homedir='/tmp/memoryhole-tests', use_agent=False) + +    def test_texthtml_signed(self): +        sampleid = 'A' +        keyowner = 'julia' +        _load_key(keyowner, self.gpg) + +        orig = _get_raw_message(sampleid) +        boundary = _boundary_factory('c') +        expected = _load_expected_msg(sampleid) +        msg = memoryhole.protect_message( +            orig, self.gpg, boundary=boundary, +            sign_digest_algo='SHA256', passphrase='_' + keyowner +  '_') +        # TODO -- how to compare messages?? +        self.assertEqual(dict(msg), dict(expected)) + + +def _load_key(keyname, gpg): +    with open(gpgdata + '/' + keyname + '.key') as keyf: +        keydata = keyf.read() +        gpg.import_keys(keydata) +    with open(gpgdata + '/' + keyname + '.pgp') as keyf: +        keydata = keyf.read() +        gpg.import_keys(keydata) + +def _get_raw_message(identifier): +    path = os.path.join(corpus, 'sample.' + identifier + '.eml') +    return _parse(_load_file(path)) + +def _load_expected_msg(identifier): +    path = os.path.join(corpus, 'expected.' + identifier + '.eml') +    return _parse(_load_file(path)) + +def _load_file(path): +    with open(path) as f: +        raw = f.read() +    return raw + +def _parse(raw): +    parser = Parser() +    return parser.parsestr(raw) + +def _boundary_factory(start): +    counter = {'value': ord(start)} + +    def _gen_boundary(): +        boundary = chr(counter['value']) * 12 +        counter['value'] -= 1 +        return boundary +    return _gen_boundary + + +if __name__ == "__main__": +    unittest.main() | 
