summaryrefslogtreecommitdiff
path: root/tests/db
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2017-08-22 16:15:08 -0700
committerDylan Baker <dylan@pnwbakers.com>2017-08-23 09:09:04 -0700
commit67301a23a14c943714ae1fd7bf6b4e21156e6ef5 (patch)
tree7285ea58bd7db89f58628719f987a1b85b787654 /tests/db
parentf26e1ff1c3d7a99ce0534e9ecebbf900b31825f7 (diff)
tests/db/utils: Add some more coverage to add_signature_headers
There are a couple of pieces of this function that aren't covered, including a bug. yay bugs.
Diffstat (limited to 'tests/db')
-rw-r--r--tests/db/utils_test.py30
1 files changed, 28 insertions, 2 deletions
diff --git a/tests/db/utils_test.py b/tests/db/utils_test.py
index 26768597..ddb16786 100644
--- a/tests/db/utils_test.py
+++ b/tests/db/utils_test.py
@@ -21,6 +21,7 @@ import mock
from alot import crypto
from alot import helper
from alot.db import utils
+from alot.errors import GPGProblem
from ..utilities import make_key, make_uid, TestCaseClassCleanup
@@ -342,14 +343,14 @@ class TestAddSignatureHeaders(unittest.TestCase):
def add_header(self, header, value):
self.headers.append((header, value))
- def check(self, key, valid):
+ def check(self, key, valid, error_msg=u''):
mail = self.FakeMail()
with mock.patch('alot.db.utils.crypto.get_key',
mock.Mock(return_value=key)), \
mock.patch('alot.db.utils.crypto.check_uid_validity',
mock.Mock(return_value=valid)):
- utils.add_signature_headers(mail, [mock.Mock(fpr='')], u'')
+ utils.add_signature_headers(mail, [mock.Mock(fpr='')], error_msg)
return mail
@@ -388,6 +389,31 @@ class TestAddSignatureHeaders(unittest.TestCase):
self.assertIn(
(utils.X_SIGNATURE_MESSAGE_HEADER, u'Valid: AndreĆ”'), mail.headers)
+ def test_error_message_unicode(self):
+ mail = self.check(mock.Mock(), mock.Mock(), u'error message')
+ self.assertIn((utils.X_SIGNATURE_VALID_HEADER, u'False'), mail.headers)
+ self.assertIn(
+ (utils.X_SIGNATURE_MESSAGE_HEADER, u'Invalid: error message'),
+ mail.headers)
+
+ def test_error_message_bytes(self):
+ mail = self.check(mock.Mock(), mock.Mock(), b'error message')
+ self.assertIn((utils.X_SIGNATURE_VALID_HEADER, u'False'), mail.headers)
+ self.assertIn(
+ (utils.X_SIGNATURE_MESSAGE_HEADER, u'Invalid: error message'),
+ mail.headers)
+
+ @unittest.expectedFailure
+ def test_get_key_fails(self):
+ mail = self.FakeMail()
+ with mock.patch('alot.db.utils.crypto.get_key',
+ mock.Mock(side_effect=GPGProblem(u'', 0))):
+ utils.add_signature_headers(mail, [mock.Mock(fpr='')], u'')
+ self.assertIn((utils.X_SIGNATURE_VALID_HEADER, u'False'), mail.headers)
+ self.assertIn(
+ (utils.X_SIGNATURE_MESSAGE_HEADER, u'Untrusted: '),
+ mail.headers)
+
class TestMessageFromFile(TestCaseClassCleanup):