121
121
self.assertEqual(u'mypass', conn._smtp_password)
123
123
def test_create_connection(self):
124
mock = MockSMTPFactory()
125
conn = self.get_connection('', smtp_factory=mock)
124
factory = StubSMTPFactory()
125
conn = self.get_connection('', smtp_factory=factory)
126
126
conn._create_connection()
127
127
self.assertEqual([('connect', 'localhost'),
129
('has_extn', 'starttls')], mock._calls)
129
('has_extn', 'starttls')], factory._calls)
131
131
def test_create_connection_ehlo_fails(self):
132
132
# Check that we call HELO if EHLO failed.
133
mock = MockSMTPFactory(fail_on=['ehlo'])
134
conn = self.get_connection('', smtp_factory=mock)
133
factory = StubSMTPFactory(fail_on=['ehlo'])
134
conn = self.get_connection('', smtp_factory=factory)
135
135
conn._create_connection()
136
136
self.assertEqual([('connect', 'localhost'),
139
('has_extn', 'starttls')], mock._calls)
139
('has_extn', 'starttls')], factory._calls)
141
141
def test_create_connection_ehlo_helo_fails(self):
142
142
# Check that we raise an exception if both EHLO and HELO fail.
143
mock = MockSMTPFactory(fail_on=['ehlo', 'helo'])
144
conn = self.get_connection('', smtp_factory=mock)
143
factory = StubSMTPFactory(fail_on=['ehlo', 'helo'])
144
conn = self.get_connection('', smtp_factory=factory)
145
145
self.assertRaises(errors.SMTPError, conn._create_connection)
146
146
self.assertEqual([('connect', 'localhost'),
148
('helo',)], mock._calls)
148
('helo',)], factory._calls)
150
150
def test_create_connection_starttls(self):
151
151
# Check that STARTTLS plus a second EHLO are called if the
152
152
# server says it supports the feature.
153
mock = MockSMTPFactory(smtp_features=['starttls'])
154
conn = self.get_connection('', smtp_factory=mock)
153
factory = StubSMTPFactory(smtp_features=['starttls'])
154
conn = self.get_connection('', smtp_factory=factory)
155
155
conn._create_connection()
156
156
self.assertEqual([('connect', 'localhost'),
158
158
('has_extn', 'starttls'),
160
('ehlo',)], mock._calls)
160
('ehlo',)], factory._calls)
162
162
def test_create_connection_starttls_fails(self):
163
163
# Check that we raise an exception if the server claims to
164
164
# support STARTTLS, but then fails when we try to activate it.
165
mock = MockSMTPFactory(fail_on=['starttls'], smtp_features=['starttls'])
166
conn = self.get_connection('', smtp_factory=mock)
165
factory = StubSMTPFactory(fail_on=['starttls'],
166
smtp_features=['starttls'])
167
conn = self.get_connection('', smtp_factory=factory)
167
168
self.assertRaises(errors.SMTPError, conn._create_connection)
168
169
self.assertEqual([('connect', 'localhost'),
170
171
('has_extn', 'starttls'),
171
('starttls',)], mock._calls)
172
('starttls',)], factory._calls)
173
174
def test_get_message_addresses(self):