97
97
my_config, _smtp_factory=smtp_factory)
99
99
def test_defaults(self):
100
conn = self.get_connection('')
100
conn = self.get_connection(b'')
101
101
self.assertEqual('localhost', conn._smtp_server)
102
102
self.assertEqual(None, conn._smtp_username)
103
103
self.assertEqual(None, conn._smtp_password)
105
105
def test_smtp_server(self):
106
conn = self.get_connection('smtp_server=host:10')
106
conn = self.get_connection(b'smtp_server=host:10')
107
107
self.assertEqual('host:10', conn._smtp_server)
109
109
def test_missing_server(self):
110
conn = self.get_connection('', smtp_factory=connection_refuser)
110
conn = self.get_connection(b'', smtp_factory=connection_refuser)
111
111
self.assertRaises(smtp_connection.DefaultSMTPConnectionRefused,
113
conn = self.get_connection('smtp_server=smtp.example.com',
113
conn = self.get_connection(b'smtp_server=smtp.example.com',
114
114
smtp_factory=connection_refuser)
115
115
self.assertRaises(smtp_connection.SMTPConnectionRefused, conn._connect)
117
117
def test_smtp_username(self):
118
conn = self.get_connection('')
118
conn = self.get_connection(b'')
119
119
self.assertIs(None, conn._smtp_username)
121
conn = self.get_connection('smtp_username=joebody')
121
conn = self.get_connection(b'smtp_username=joebody')
122
122
self.assertEqual(u'joebody', conn._smtp_username)
124
124
def test_smtp_password_from_config(self):
125
conn = self.get_connection('')
125
conn = self.get_connection(b'')
126
126
self.assertIs(None, conn._smtp_password)
128
conn = self.get_connection('smtp_password=mypass')
128
conn = self.get_connection(b'smtp_password=mypass')
129
129
self.assertEqual(u'mypass', conn._smtp_password)
131
131
def test_smtp_password_from_user(self):
133
133
password = 'hispass'
134
134
factory = WideOpenSMTPFactory()
135
conn = self.get_connection('[DEFAULT]\nsmtp_username=%s\n' % user,
135
conn = self.get_connection(b'[DEFAULT]\nsmtp_username=%s\n' % user,
136
136
smtp_factory=factory)
137
137
self.assertIs(None, conn._smtp_password)
145
145
password = 'hispass'
146
146
factory = WideOpenSMTPFactory()
147
conn = self.get_connection('[DEFAULT]\nsmtp_username=%s\n' % user,
147
conn = self.get_connection(b'[DEFAULT]\nsmtp_username=%s\n' % user,
148
148
smtp_factory=factory)
149
149
self.assertEqual(user, conn._smtp_username)
150
150
self.assertIs(None, conn._smtp_password)
164
164
utf8_pass = unicode_pass.encode('utf-8')
165
165
factory = WideOpenSMTPFactory()
166
166
conn = self.get_connection(
167
'[DEFAULT]\nsmtp_username=%s\nsmtp_password=%s\n'
167
b'[DEFAULT]\nsmtp_username=%s\nsmtp_password=%s\n'
168
168
% (user, utf8_pass), smtp_factory=factory)
169
169
self.assertEqual(unicode_pass, conn._smtp_password)
179
179
def test_create_connection(self):
180
180
factory = StubSMTPFactory()
181
conn = self.get_connection('', smtp_factory=factory)
181
conn = self.get_connection(b'', smtp_factory=factory)
182
182
conn._create_connection()
183
183
self.assertEqual([('connect', 'localhost'),
187
187
def test_create_connection_ehlo_fails(self):
188
188
# Check that we call HELO if EHLO failed.
189
189
factory = StubSMTPFactory(fail_on=['ehlo'])
190
conn = self.get_connection('', smtp_factory=factory)
190
conn = self.get_connection(b'', smtp_factory=factory)
191
191
conn._create_connection()
192
192
self.assertEqual([('connect', 'localhost'),
197
197
def test_create_connection_ehlo_helo_fails(self):
198
198
# Check that we raise an exception if both EHLO and HELO fail.
199
199
factory = StubSMTPFactory(fail_on=['ehlo', 'helo'])
200
conn = self.get_connection('', smtp_factory=factory)
200
conn = self.get_connection(b'', smtp_factory=factory)
201
201
self.assertRaises(smtp_connection.SMTPError, conn._create_connection)
202
202
self.assertEqual([('connect', 'localhost'),
207
207
# Check that STARTTLS plus a second EHLO are called if the
208
208
# server says it supports the feature.
209
209
factory = StubSMTPFactory(smtp_features=['starttls'])
210
conn = self.get_connection('', smtp_factory=factory)
210
conn = self.get_connection(b'', smtp_factory=factory)
211
211
conn._create_connection()
212
212
self.assertEqual([('connect', 'localhost'),
220
220
# support STARTTLS, but then fails when we try to activate it.
221
221
factory = StubSMTPFactory(fail_on=['starttls'],
222
222
smtp_features=['starttls'])
223
conn = self.get_connection('', smtp_factory=factory)
223
conn = self.get_connection(b'', smtp_factory=factory)
224
224
self.assertRaises(smtp_connection.SMTPError, conn._create_connection)
225
225
self.assertEqual([('connect', 'localhost'),