diff options
Diffstat (limited to 'src/leap/email/smtp/tests')
-rw-r--r-- | src/leap/email/smtp/tests/__init__.py | 4 | ||||
-rw-r--r-- | src/leap/email/smtp/tests/test_smtprelay.py | 61 |
2 files changed, 33 insertions, 32 deletions
diff --git a/src/leap/email/smtp/tests/__init__.py b/src/leap/email/smtp/tests/__init__.py index ef5fd062..022968e1 100644 --- a/src/leap/email/smtp/tests/__init__.py +++ b/src/leap/email/smtp/tests/__init__.py @@ -5,6 +5,7 @@ from leap.email.smtp.smtprelay import GPGWrapper from twisted.trial import unittest from leap.testing.basetest import BaseLeapTest + class OpenPGPTestCase(unittest.TestCase, BaseLeapTest): def setUp(self): @@ -24,7 +25,7 @@ class OpenPGPTestCase(unittest.TestCase, BaseLeapTest): os.mkdir(self.gnupg_home) self.email = 'leap@leap.se' self._gpg = GPGWrapper(gpghome=self.gnupg_home) - + self.assertEqual(self._gpg.import_keys(PUBLIC_KEY).summary(), '1 imported', "error importing public key") self.assertEqual(self._gpg.import_keys(PRIVATE_KEY).summary(), @@ -48,7 +49,6 @@ class OpenPGPTestCase(unittest.TestCase, BaseLeapTest): self.assertNotEqual(text, encrypted, "failed encrypting text") decrypted = str(self._gpg.decrypt(encrypted)) self.assertEqual(text, decrypted, "failed decrypting text") - # Key material for testing diff --git a/src/leap/email/smtp/tests/test_smtprelay.py b/src/leap/email/smtp/tests/test_smtprelay.py index 54aa6dea..109e253b 100644 --- a/src/leap/email/smtp/tests/test_smtprelay.py +++ b/src/leap/email/smtp/tests/test_smtprelay.py @@ -11,47 +11,50 @@ from twisted.mail.smtp import User # some regexps -IP_REGEX = "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"; -HOSTNAME_REGEX = "(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])"; +IP_REGEX = "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}" + \ + "([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])" +HOSTNAME_REGEX = "(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*" + \ + "([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])" IP_OR_HOST_REGEX = '(' + IP_REGEX + '|' + HOSTNAME_REGEX + ')' -class TestSmtpRelay(tests.OpenPGPTestCase): - - EMAIL_DATA = [ 'HELO relay.leap.se', - 'MAIL FROM: <user@leap.se>', - 'RCPT TO: <leap@leap.se>', - 'DATA', - 'From: User <user@leap.se>', - 'To: Leap <leap@leap.se>', - 'Date: ' + datetime.now().strftime('%c'), - 'Subject: test message', - '', - 'This is a secret message.', - 'Yours,', - 'A.', - '', - '.', - 'QUIT' ] +class TestSmtpRelay(tests.OpenPGPTestCase): + EMAIL_DATA = ['HELO relay.leap.se', + 'MAIL FROM: <user@leap.se>', + 'RCPT TO: <leap@leap.se>', + 'DATA', + 'From: User <user@leap.se>', + 'To: Leap <leap@leap.se>', + 'Date: ' + datetime.now().strftime('%c'), + 'Subject: test message', + '', + 'This is a secret message.', + 'Yours,', + 'A.', + '', + '.', + 'QUIT'] def assertMatch(self, string, pattern, msg=None): if not re.match(pattern, string): msg = self._formatMessage(msg, '"%s" does not match pattern "%s".' - % (string, pattern)) + % (string, pattern)) raise self.failureException(msg) - def test_relay_accepts_valid_email(self): """ Test if SMTP server responds correctly for valid interaction. """ - SMTP_ANSWERS = [ '220 ' + IP_OR_HOST_REGEX + ' NO UCE NO UBE NO RELAY PROBES', - '250 ' + IP_OR_HOST_REGEX + ' Hello ' + IP_OR_HOST_REGEX + ', nice to meet you', - '250 Sender address accepted', - '250 Recipient address accepted', - '354 Continue' ] - proto = SMTPFactory(self._gpg).buildProtocol(('127.0.0.1',0)) + + SMTP_ANSWERS = ['220 ' + IP_OR_HOST_REGEX + + ' NO UCE NO UBE NO RELAY PROBES', + '250 ' + IP_OR_HOST_REGEX + ' Hello ' + + IP_OR_HOST_REGEX + ', nice to meet you', + '250 Sender address accepted', + '250 Recipient address accepted', + '354 Continue'] + proto = SMTPFactory(self._gpg).buildProtocol(('127.0.0.1', 0)) transport = proto_helpers.StringTransport() proto.makeConnection(transport) for i, line in enumerate(self.EMAIL_DATA): @@ -60,9 +63,8 @@ class TestSmtpRelay(tests.OpenPGPTestCase): '\r\n'.join(SMTP_ANSWERS[0:i+1])) proto.setTimeout(None) - def test_message_encrypt(self): - proto = SMTPFactory(self._gpg).buildProtocol(('127.0.0.1',0)) + proto = SMTPFactory(self._gpg).buildProtocol(('127.0.0.1', 0)) user = User('leap@leap.se', 'relay.leap.se', proto, 'leap@leap.se') m = EncryptedMessage(user, self._gpg) for line in self.EMAIL_DATA[4:12]: @@ -71,4 +73,3 @@ class TestSmtpRelay(tests.OpenPGPTestCase): m.encrypt() decrypted = str(self._gpg.decrypt(m.cyphertext)) self.assertEqual('\n'.join(self.EMAIL_DATA[9:12]), decrypted) - |