commit 9cf6d069e7c14edfc563617e1553afc899d576da Author: Isis Lovecruft isis@torproject.org Date: Tue May 6 12:25:38 2014 +0000
Add email.server.generateResponse() and MailResponse unittests. --- lib/bridgedb/test/test_email_server.py | 60 ++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 10 deletions(-)
diff --git a/lib/bridgedb/test/test_email_server.py b/lib/bridgedb/test/test_email_server.py index c7fdefb..5323e38 100644 --- a/lib/bridgedb/test/test_email_server.py +++ b/lib/bridgedb/test/test_email_server.py @@ -208,18 +208,58 @@ class CreateResponseBodyTests(unittest.TestCase): self.assertSubstring("obfs2", ret)
-class EmailReplyTests(unittest.TestCase): - """Tests for ``EmailServer.replyToMail()``.""" +class MailResponseTests(unittest.TestCase): + """Tests for ``generateResponse()`` and ``MailResponse``."""
def setUp(self): - """Create fake email, distributor, and associated context data.""" - # TODO: Add headers if we start validating them - self.lines = ["From: %s@%s.com", - "To: bridges@example.net", - "Subject: testing", - "\n", - "get bridges"] - self.ctx = _createMailContext() + self.fromAddr = "bridges@torproject.org" + self.clientAddr = "user@example.com" + self.body = """\ +People think that time is strictly linear, but, in reality, it's actually just +a ball of timey-wimey, wibbly-warbly... stuff.""" + + def tearDown(self): + server.safelog.safe_logging = True + + def test_generateResponse(self): + response = server.generateResponse(self.fromAddr, self.clientAddr, + self.body) + self.assertIsInstance(response, server.MailResponse) + + def test_generateResponse_noSafelog(self): + server.safelog.safe_logging = False + response = server.generateResponse(self.fromAddr, self.clientAddr, + self.body) + self.assertIsInstance(response, server.MailResponse) + + def test_generateResponse_mailfile(self): + response = server.generateResponse(self.fromAddr, self.clientAddr, + self.body) + self.assertIsInstance(response.mailfile, (io.BytesIO, io.StringIO)) + + def test_generateResponse_withInReplyTo(self): + response = server.generateResponse(self.fromAddr, self.clientAddr, + self.body, messageID="NSA") + contents = str(response.readContents()).replace('\x00', '') + self.assertIsInstance(response.mailfile, (io.BytesIO, io.StringIO)) + self.assertSubstring("In-Reply-To: NSA", contents) + + def test_generateResponse_readContents(self): + response = server.generateResponse(self.fromAddr, self.clientAddr, + self.body) + contents = str(response.readContents()).replace('\x00', '') + self.assertSubstring('timey-wimey, wibbly-warbly... stuff.', contents) + + def test_MailResponse_additionalHeaders(self): + response = server.MailResponse() + response.writeHeaders(self.fromAddr, self.clientAddr, + subject="Re: echelon", inReplyTo="NSA", + X_been_there="They were so 2004") + contents = str(response.readContents()).replace('\x00', '') + self.assertIsInstance(response.mailfile, (io.BytesIO, io.StringIO)) + self.assertSubstring("In-Reply-To: NSA", contents) + self.assertSubstring("X-been-there: They were so 2004", contents) +
def test_replyToMail(self): self.skip = True
tor-commits@lists.torproject.org