1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-07-17 01:32:37 +02:00

add gpg tests

This commit is contained in:
Kelly Brazil
2022-06-29 18:56:15 -07:00
parent 43ac3d951c
commit e472c3b140
3 changed files with 57 additions and 0 deletions

1
tests/fixtures/generic/gpg.json vendored Normal file
View File

@ -0,0 +1 @@
[{"type":"pub","validity":"f","key_length":"1024","pub_key_alg":"17","key_id":"6C7EE1B8621CC013","creation_date":"899817715","expiration_date":"1055898235","certsn_uidhash_trustinfo":null,"owner_trust":"m","user_id":null,"signature_class":null,"key_capabilities":"scESC","cert_fingerprint_other":null,"flag":null,"token_sn":null,"hash_alg":null,"curve_name":null,"compliance_flags":null,"last_update_date":null,"origin":null,"comment":null},{"type":"fpr","validity":null,"key_length":null,"pub_key_alg":null,"key_id":null,"creation_date":null,"expiration_date":null,"certsn_uidhash_trustinfo":null,"owner_trust":null,"user_id":"ECAF7590EB3443B5C7CF3ACB6C7EE1B8621CC013","signature_class":null,"key_capabilities":null,"cert_fingerprint_other":null,"flag":null,"token_sn":null,"hash_alg":null,"curve_name":null,"compliance_flags":null,"last_update_date":null,"origin":null,"comment":null},{"type":"uid","validity":"f","key_length":null,"pub_key_alg":null,"key_id":null,"creation_date":null,"expiration_date":null,"certsn_uidhash_trustinfo":null,"owner_trust":null,"user_id":"Werner Koch <wk@g10code.com>","signature_class":null,"key_capabilities":null,"cert_fingerprint_other":null,"flag":null,"token_sn":null,"hash_alg":null,"curve_name":null,"compliance_flags":null,"last_update_date":null,"origin":null,"comment":null},{"type":"uid","validity":"f","key_length":null,"pub_key_alg":null,"key_id":null,"creation_date":null,"expiration_date":null,"certsn_uidhash_trustinfo":null,"owner_trust":null,"user_id":"Werner Koch <wk@gnupg.org>","signature_class":null,"key_capabilities":null,"cert_fingerprint_other":null,"flag":null,"token_sn":null,"hash_alg":null,"curve_name":null,"compliance_flags":null,"last_update_date":null,"origin":null,"comment":null},{"type":"sub","validity":"f","key_length":"1536","pub_key_alg":"16","key_id":"06AD222CADF6A6E1","creation_date":"919537416","expiration_date":"1036177416","certsn_uidhash_trustinfo":null,"owner_trust":null,"user_id":null,"signature_class":null,"key_capabilities":"e","cert_fingerprint_other":null,"flag":null,"token_sn":null,"hash_alg":null,"curve_name":null,"compliance_flags":null,"last_update_date":null,"origin":null,"comment":null},{"type":"fpr","validity":null,"key_length":null,"pub_key_alg":null,"key_id":null,"creation_date":null,"expiration_date":null,"certsn_uidhash_trustinfo":null,"owner_trust":null,"user_id":"CF8BCC4B18DE08FCD8A1615906AD222CADF6A6E1","signature_class":null,"key_capabilities":null,"cert_fingerprint_other":null,"flag":null,"token_sn":null,"hash_alg":null,"curve_name":null,"compliance_flags":null,"last_update_date":null,"origin":null,"comment":null},{"type":"sub","validity":"r","key_length":"1536","pub_key_alg":"20","key_id":"5CE086B5B5A18FF4","creation_date":"899817788","expiration_date":"1025961788","certsn_uidhash_trustinfo":null,"owner_trust":null,"user_id":null,"signature_class":null,"key_capabilities":"esc","cert_fingerprint_other":null,"flag":null,"token_sn":null,"hash_alg":null,"curve_name":null,"compliance_flags":null,"last_update_date":null,"origin":null,"comment":null},{"type":"fpr","validity":null,"key_length":null,"pub_key_alg":null,"key_id":null,"creation_date":null,"expiration_date":null,"certsn_uidhash_trustinfo":null,"owner_trust":null,"user_id":"AB059359A3B81F410FCFF97F5CE086B5B5A18FF4","signature_class":null,"key_capabilities":null,"cert_fingerprint_other":null,"flag":null,"token_sn":null,"hash_alg":null,"curve_name":null,"compliance_flags":null,"last_update_date":null,"origin":null,"comment":null},{"type":"pkd","index":"0","bits":"1024","value":"B665B1435F4C2FF26ABB"},{"type":"tfs","version":"f1","validity":"f2","signature_count":"f3","encryption_count":"f4","policy":"f5","signature_first_seen":"f6","signature_most_recent_seen":"f7","encryption_first_done":"f8","encryption_most_recent_done":"f9"},{"type":"tru","staleness_reason":"o","trust_model":"0","trust_db_created":"1166697654","trust_db_expires":"1","marginally_trusted_users":"3","completely_trusted_users":"1","cert_chain_max_depth":"5"},{"type":"skp","subpacket_number":"f1","hex_flags":"f2","subpacket_length":"f3","subpacket_data":"f4"},{"type":"cfg","version":"1.3.5"},{"type":"cfg","pubkey":"1;2;3;16;17"},{"type":"cfg","cipher":"2;3;4;7;8;9;10"},{"type":"cfg","digest":"1;2;3;8;9;10"},{"type":"cfg","compress":"0;1;2;3"},{"type":"cfg","group":"mynames","members":"patti;joe;0x12345678;paige"},{"type":"cfg","curve_names":"ed25519;nistp256;nistp384;nistp521"}]

21
tests/fixtures/generic/gpg.out vendored Normal file
View File

@ -0,0 +1,21 @@
pub:f:1024:17:6C7EE1B8621CC013:899817715:1055898235::m:::scESC:
fpr:::::::::ECAF7590EB3443B5C7CF3ACB6C7EE1B8621CC013:
uid:f::::::::Werner Koch <wk@g10code.com>:
uid:f::::::::Werner Koch <wk@gnupg.org>:
sub:f:1536:16:06AD222CADF6A6E1:919537416:1036177416:::::e:
fpr:::::::::CF8BCC4B18DE08FCD8A1615906AD222CADF6A6E1:
sub:r:1536:20:5CE086B5B5A18FF4:899817788:1025961788:::::esc:
fpr:::::::::AB059359A3B81F410FCFF97F5CE086B5B5A18FF4:
pkd:0:1024:B665B1435F4C2FF26ABB:
tfs:f1:f2:f3:f4:f5:f6:f7:f8:f9:
tru:o:0:1166697654:1:3:1:5
skp:f1:f2:f3:f4:
cfg:version:1.3.5
cfg:pubkey:1;2;3;16;17
cfg:cipher:2;3;4;7;8;9;10
cfg:digest:1;2;3;8;9;10
cfg:compress:0;1;2;3
cfg:group:mynames:patti;joe;0x12345678;paige
cfg:curve:ed25519;nistp256;nistp384;nistp521

35
tests/test_gpg.py Normal file
View File

@ -0,0 +1,35 @@
import os
import unittest
import json
import jc.parsers.gpg
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
class MyTests(unittest.TestCase):
def setUp(self):
# input
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/gpg.out'), 'r', encoding='utf-8') as f:
self.gpg = f.read()
# output
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/generic/gpg.json'), 'r', encoding='utf-8') as f:
self.gpg_json = json.loads(f.read())
def test_gpg_nodata(self):
"""
Test 'gpg' with no data
"""
self.assertEqual(jc.parsers.gpg.parse('', quiet=True), [])
def test_gpg(self):
"""
Test 'gpg --with-colons --list-keys --with-fingerprint --with-fingerprint wk@gnupg.org'
"""
self.assertEqual(jc.parsers.gpg.parse(self.gpg, quiet=True), self.gpg_json)
if __name__ == '__main__':
unittest.main()