Add more tests for the Key model. Remove the key_id field and made it a property derived from the fingerprint.
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
TEST_GPG_HOME = '/tmp/test_gpg_home'
|
||||
TEST_KEY_ID = '607138F1AECC5A5CA31CB7715F3F7F75D210724D'
|
||||
TEST_KEY_FINGERPRINT = '6A24574E0A35004CDDFD22704125E9C571F378AC'
|
||||
TEST_KEYSERVERS = ['pool.sks-keyservers.net']
|
||||
TEST_UIDS = 'Roberto Rosario'
|
||||
|
||||
TEST_SEARCH_UID = 'Roberto Rosario'
|
||||
TEST_SEARCH_FINGERPRINT = '607138F1AECC5A5CA31CB7715F3F7F75D210724D'
|
||||
|
||||
TEST_KEY_DATA = '''-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import shutil
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from ..api import GPG, Key
|
||||
from ..settings import setting_gpg_path
|
||||
|
||||
from .literals import TEST_GPG_HOME, TEST_KEY_ID, TEST_KEYSERVERS, TEST_UIDS
|
||||
|
||||
|
||||
class DjangoGPGTestCase(TestCase):
|
||||
def setUp(self):
|
||||
try:
|
||||
shutil.rmtree(TEST_GPG_HOME)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
self.gpg = GPG(
|
||||
binary_path=setting_gpg_path.value, home=TEST_GPG_HOME,
|
||||
keyservers=TEST_KEYSERVERS
|
||||
)
|
||||
|
||||
def test_main(self):
|
||||
# No private or public keys in the keyring
|
||||
self.assertEqual(Key.get_all(self.gpg, secret=True), [])
|
||||
self.assertEqual(Key.get_all(self.gpg), [])
|
||||
|
||||
# Test querying the keyservers
|
||||
self.assertTrue(
|
||||
TEST_KEY_ID in [
|
||||
key_stub.key_id for key_stub in self.gpg.query(TEST_UIDS)
|
||||
]
|
||||
)
|
||||
|
||||
# Receive a public key from the keyserver
|
||||
self.gpg.receive_key(key_id=TEST_KEY_ID[-8:])
|
||||
|
||||
# Check that the received key is indeed in the keyring
|
||||
self.assertTrue(
|
||||
TEST_KEY_ID[-16:] in [
|
||||
key_stub.key_id for key_stub in Key.get_all(self.gpg)
|
||||
]
|
||||
)
|
||||
@@ -4,7 +4,10 @@ from django.test import TestCase
|
||||
|
||||
from ..models import Key
|
||||
|
||||
from .literals import TEST_KEY_DATA, TEST_KEY_FINGERPRINT, TEST_KEY_ID
|
||||
from .literals import (
|
||||
TEST_KEY_DATA, TEST_KEY_FINGERPRINT, TEST_SEARCH_FINGERPRINT,
|
||||
TEST_SEARCH_UID
|
||||
)
|
||||
|
||||
|
||||
class KeyTestCase(TestCase):
|
||||
@@ -12,5 +15,19 @@ class KeyTestCase(TestCase):
|
||||
# Creating a Key instance is analogous to importing a key
|
||||
key = Key.objects.create(key_data=TEST_KEY_DATA)
|
||||
|
||||
self.assertEqual(key.key_id, TEST_KEY_ID)
|
||||
self.assertEqual(key.fingerprint, TEST_KEY_FINGERPRINT)
|
||||
|
||||
def test_key_search(self):
|
||||
search_results = Key.objects.search(query=TEST_SEARCH_UID)
|
||||
|
||||
self.assertTrue(
|
||||
TEST_SEARCH_FINGERPRINT in [
|
||||
key_stub.fingerprint for key_stub in search_results
|
||||
]
|
||||
)
|
||||
|
||||
def test_key_receive(self):
|
||||
Key.objects.receive_key(key_id=TEST_SEARCH_FINGERPRINT)
|
||||
|
||||
self.assertEqual(Key.objects.all().count(), 1)
|
||||
self.assertEqual(Key.objects.first().fingerprint, TEST_SEARCH_FINGERPRINT)
|
||||
|
||||
Reference in New Issue
Block a user