diff options
Diffstat (limited to 'src')
| -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)) |
