diff options
| author | J08nY | 2017-06-27 21:46:30 +0200 |
|---|---|---|
| committer | J08nY | 2017-06-27 21:46:30 +0200 |
| commit | 89a5514814fe829e9741015e020ca72a11ab2670 (patch) | |
| tree | c978d6716be393ded7d8b6971822986924146450 | |
| parent | 5598bee159a8a8c2de2ea926ff11de029e0e4e1c (diff) | |
| download | mailman-pgp-89a5514814fe829e9741015e020ca72a11ab2670.tar.gz mailman-pgp-89a5514814fe829e9741015e020ca72a11ab2670.tar.zst mailman-pgp-89a5514814fe829e9741015e020ca72a11ab2670.zip | |
| -rw-r--r-- | src/mailman_pgp/pgp/tests/test_keygen.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/mailman_pgp/pgp/tests/test_keygen.py b/src/mailman_pgp/pgp/tests/test_keygen.py index 5047cc6..dab6801 100644 --- a/src/mailman_pgp/pgp/tests/test_keygen.py +++ b/src/mailman_pgp/pgp/tests/test_keygen.py @@ -15,3 +15,57 @@ # You should have received a copy of the GNU General Public License along with # this program. If not, see <http://www.gnu.org/licenses/>. +from os.path import exists, isfile, join +from tempfile import TemporaryDirectory +from unittest import TestCase + +from pgpy import PGPKey +from pgpy.constants import PubKeyAlgorithm + +from mailman_pgp.pgp.keygen import ListKeyGenerator + + +class TesKeygen(TestCase): + def setUp(self): + self.keypair_config = { + 'key_type': PubKeyAlgorithm.RSAEncryptOrSign, + 'key_length': 1024, + 'subkey_type': PubKeyAlgorithm.RSAEncryptOrSign, + 'subkey_length': 1024 + } + self.display_name = 'Display Name' + self.posting_address = 'posting@address.com' + self.request_address = 'posting-request@address.com' + + def test_generate(self): + with TemporaryDirectory() as temp_dir: + key_path = join(temp_dir, 'key.asc') + keygen = ListKeyGenerator(self.keypair_config, self.display_name, + self.posting_address, + self.request_address, key_path) + keygen.start() + keygen.join() + self.assertTrue(exists(key_path)) + self.assertTrue(isfile(key_path)) + + key, _ = PGPKey.from_file(key_path) + self.assertEqual(key.key_algorithm, + self.keypair_config['key_type']) + self.assertEqual(key.key_size, + self.keypair_config['key_length']) + + subs = key.subkeys + self.assertEqual(len(subs), 1) + + keyid, sub = subs.popitem() + self.assertEqual(sub.key_algorithm, + self.keypair_config['subkey_type']) + self.assertEqual(sub.key_size, + self.keypair_config['subkey_length']) + + uids = key.userids + self.assertEqual(len(uids), 2) + for uid in uids: + self.assertEqual(uid.name, self.display_name) + self.assertIn(uid.email, + (self.posting_address, self.request_address)) |
