aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mailman_pgp/pgp/tests/test_keygen.py54
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))