~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_smtp_connection.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-03-25 18:43:31 UTC
  • mfrom: (4147.1.3 bzr.bug-338261)
  • Revision ID: pqm@pqm.ubuntu.com-20090325184331-1up3t0gh14ttr5zm
(James Henstridge) Insure that byte strings are passed to SMTP.login()

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
import errno
20
20
import smtplib
21
21
import socket
22
 
import sys
23
22
 
24
23
from bzrlib import (
25
24
    config,
86
85
    """A fake smtp server that implements login by accepting anybody."""
87
86
 
88
87
    def login(self, user, password):
89
 
        pass
 
88
        self._calls.append(('login', user, password))
90
89
 
91
90
 
92
91
class TestSMTPConnection(tests.TestCaseInTempDir):
162
161
        conn._connect()
163
162
        self.assertEqual(password, conn._smtp_password)
164
163
 
 
164
    def test_authenticate_with_byte_strings(self):
 
165
        user = 'joe'
 
166
        password = 'h\xC3\xACspass'
 
167
        factory = WideOpenSMTPFactory()
 
168
        conn = self.get_connection(
 
169
            '[DEFAULT]\nsmtp_username=%s\nsmtp_password=%s\n'
 
170
            % (user, password), smtp_factory=factory)
 
171
        self.assertEqual(u'h\xECspass', conn._smtp_password)
 
172
        conn._connect()
 
173
        self.assertEqual([('connect', 'localhost'),
 
174
                          ('ehlo',),
 
175
                          ('has_extn', 'starttls'),
 
176
                          ('login', user, password)], factory._calls)
 
177
        smtp_username, smtp_password = factory._calls[-1][1:]
 
178
        self.assertIsInstance(smtp_username, str)
 
179
        self.assertIsInstance(smtp_password, str)
 
180
 
165
181
    def test_create_connection(self):
166
182
        factory = StubSMTPFactory()
167
183
        conn = self.get_connection('', smtp_factory=factory)