aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2017-06-27 21:46:30 +0200
committerJ08nY2017-06-27 21:46:30 +0200
commit89a5514814fe829e9741015e020ca72a11ab2670 (patch)
treec978d6716be393ded7d8b6971822986924146450
parent5598bee159a8a8c2de2ea926ff11de029e0e4e1c (diff)
downloadmailman-pgp-89a5514814fe829e9741015e020ca72a11ab2670.tar.gz
mailman-pgp-89a5514814fe829e9741015e020ca72a11ab2670.tar.zst
mailman-pgp-89a5514814fe829e9741015e020ca72a11ab2670.zip
-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))