[tor-commits] [bridgedb/master] Add unittest for EmailServer.replyToMail().

isis at torproject.org isis at torproject.org
Sat Apr 19 17:02:43 UTC 2014


commit f9e2175750b998366492fbb197594b8eb226fbaa
Author: Isis Lovecruft <isis at torproject.org>
Date:   Tue Apr 8 21:28:34 2014 +0000

    Add unittest for EmailServer.replyToMail().
---
 lib/bridgedb/test/test_EmailServer.py |   42 ++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/lib/bridgedb/test/test_EmailServer.py b/lib/bridgedb/test/test_EmailServer.py
index 13f018c..f828be7 100644
--- a/lib/bridgedb/test/test_EmailServer.py
+++ b/lib/bridgedb/test/test_EmailServer.py
@@ -26,7 +26,9 @@ from bridgedb.EmailServer import MailContext
 from bridgedb.Time import NoSchedule
 from bridgedb.persistent import Conf
 from bridgedb.test.util import fileCheckDecorator
+
 from twisted.python import log
+from twisted.internet import defer
 from twisted.trial import unittest
 
 
@@ -130,7 +132,7 @@ class EmailGnuPGTest(unittest.TestCase):
         ctx = EmailServer.getGPGContext(self.config)
         self.assertTrue(ctx is None)
 
-class EmailCompositionTests(unittest.TestCase):
+class EmailResponseTests(unittest.TestCase):
     """Tests for :func:`bridgedb.EmailServer.getMailResponse`."""
 
     def setUp(self):
@@ -267,6 +269,44 @@ class EmailCompositionTests(unittest.TestCase):
         mail = ret[1].getvalue()
         self.assertNotEqual(mail.find("no bridges currently"), -1)
 
+
+class EmailReplyTests(unittest.TestCase):
+    """Tests for ``EmailServer.replyToMail()``."""
+
+    def setUp(self):
+        """Create fake email, distributor, and associated context data."""
+        configuration = {}
+        TEST_CONFIG_FILE.seek(0)
+        compiled = compile(TEST_CONFIG_FILE.read(), '<string>', 'exec')
+        exec compiled in configuration
+        self.config = Conf(**configuration)
+
+        # TODO: Add headers if we start validating them
+        self.lines = ["From: %s@%s.com",
+                      "To: bridges at example.net",
+                      "Subject: testing",
+                      "\n",
+                      "get bridges"]
+        self.distributor = FakeDistributor('key', {}, {}, [])
+        self.ctx = MailContext(self.config, self.distributor, NoSchedule())
+
+    def test_replyToMail(self):
+        self.skip = True
+        raise unittest.SkipTest("We'll have to fake the EmailServer for this one,"\
+                                " it requires a TCP connection to localhost.")
+
+        def callback(reply):
+            self.assertSubstring("Here are your bridges", reply)
+
+        lines = copy.copy(self.lines)
+        lines[0] = self.lines[0] % ("testing", "example")
+        reply = EmailServer.replyToMail(lines, self.ctx)
+
+        self.assertIsInstance(reply, defer.Deferred)
+
+        reply.addCallback(callback)
+        return reply
+
 class EmailServerServiceTests(unittest.TestCase):
     def setUp(self):
         configuration = {}





More information about the tor-commits mailing list