[tor-commits] [bridgedb/master] Fix test_EmailServer unittests which expected StringIO.

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


commit 711043a94221061754600addf0cd9707b3628590
Author: Isis Lovecruft <isis at torproject.org>
Date:   Wed Apr 16 20:23:27 2014 +0000

    Fix test_EmailServer unittests which expected StringIO.
---
 lib/bridgedb/test/test_EmailServer.py |   44 ++++++++++++++++++---------------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/lib/bridgedb/test/test_EmailServer.py b/lib/bridgedb/test/test_EmailServer.py
index 8521762..3676642 100644
--- a/lib/bridgedb/test/test_EmailServer.py
+++ b/lib/bridgedb/test/test_EmailServer.py
@@ -16,7 +16,7 @@ from __future__ import print_function
 import os
 import shutil
 
-from io import StringIO
+import io
 import copy
 
 from bridgedb import EmailServer
@@ -32,7 +32,7 @@ from twisted.internet import defer
 from twisted.trial import unittest
 
 
-TEST_CONFIG_FILE = StringIO(unicode("""\
+TEST_CONFIG_FILE = io.StringIO(unicode("""\
 EMAIL_DIST = True
 EMAIL_GPG_SIGNING_ENABLED = True
 EMAIL_GPG_SIGNING_KEY = 'TESTING.subkeys.sec'
@@ -52,6 +52,20 @@ EMAIL_BIND_IP = "127.0.0.1"
 EMAIL_PORT = 5225
 """))
 
+def _createMailContext(distributor=None):
+    configuration = {}
+    TEST_CONFIG_FILE.seek(0)
+    compiled = compile(TEST_CONFIG_FILE.read(), '<string>', 'exec')
+    exec compiled in configuration
+    config = Conf(**configuration)
+
+    if not distributor:
+        distributor = FakeDistributor('key', {}, {}, [])
+
+    ctx = MailContext(config, distributor, NoSchedule())
+    return ctx
+
+
 class FakeDistributor(EmailBasedDistributor):
     def __init__(self, key, domainmap, domainrules, answerParameters=None,
                  bridges=None):
@@ -132,17 +146,12 @@ class EmailGnuPGTest(unittest.TestCase):
         ctx = EmailServer.getGPGContext(self.config)
         self.assertTrue(ctx is None)
 
+
 class EmailResponseTests(unittest.TestCase):
     """Tests for :func:`bridgedb.EmailServer.getMailResponse`."""
 
     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",
@@ -150,7 +159,7 @@ class EmailResponseTests(unittest.TestCase):
                       "\n",
                       "get bridges"]
         self.distributor = FakeDistributor('key', {}, {}, [])
-        self.ctx = MailContext(self.config, self.distributor, NoSchedule())
+        self.ctx = _createMailContext(self.distributor)
 
     def test_getMailResponse_noFrom(self):
         """A received email without a "From:" or "Sender:" header shouldn't
@@ -221,7 +230,7 @@ class EmailResponseTests(unittest.TestCase):
         self.assertIsInstance(ret, tuple)
         self.assertEqual(len(ret), 2)
         self.assertEqual(ret[0], "testing at example.com")
-        self.assertIsInstance(ret[1], StringIO)
+        self.assertIsInstance(ret[1], io.BytesIO)
         mail = ret[1].getvalue()
         self.assertNotEqual(mail.find("no bridges currently"), -1)
 
@@ -234,7 +243,7 @@ class EmailResponseTests(unittest.TestCase):
         self.assertIsInstance(ret, tuple)
         self.assertEqual(len(ret), 2)
         self.assertEqual(ret[0], "testing at example.com")
-        self.assertIsInstance(ret[1], StringIO)
+        self.assertIsInstance(ret[1], io.BytesIO)
         mail = ret[1].getvalue()
         self.assertNotEqual(mail.find("no bridges currently"), -1)
 
@@ -249,7 +258,7 @@ class EmailResponseTests(unittest.TestCase):
         self.assertIsInstance(ret, tuple)
         self.assertEqual(len(ret), 2)
         self.assertEqual(ret[0], "testing at example.com")
-        self.assertIsInstance(ret[1], StringIO)
+        self.assertIsInstance(ret[1], io.BytesIO)
         mail = ret[1].getvalue()
         self.assertNotEqual(mail.find("no bridges currently"), -1)
 
@@ -265,7 +274,7 @@ class EmailResponseTests(unittest.TestCase):
         self.assertIsInstance(ret, tuple)
         self.assertEqual(len(ret), 2)
         self.assertEqual(ret[0], "testing at example.com")
-        self.assertIsInstance(ret[1], StringIO)
+        self.assertIsInstance(ret[1], io.BytesIO)
         mail = ret[1].getvalue()
         self.assertNotEqual(mail.find("no bridges currently"), -1)
 
@@ -275,12 +284,6 @@ class EmailReplyTests(unittest.TestCase):
 
     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",
@@ -288,7 +291,7 @@ class EmailReplyTests(unittest.TestCase):
                       "\n",
                       "get bridges"]
         self.distributor = FakeDistributor('key', {}, {}, [])
-        self.ctx = MailContext(self.config, self.distributor, NoSchedule())
+        self.ctx = _createMailContext(self.distributor)
 
     def test_replyToMail(self):
         self.skip = True
@@ -307,6 +310,7 @@ class EmailReplyTests(unittest.TestCase):
         reply.addCallback(callback)
         return reply
 
+
 class EmailServerServiceTests(unittest.TestCase):
     def setUp(self):
         configuration = {}





More information about the tor-commits mailing list