def test_connection(self): sessions = {} cap = smtp.smtp(sessions, {'enabled': 'True', 'port': 2525, 'banner': 'Test'}) socket = create_socket(("0.0.0.0", 2525)) srv = StreamServer(socket, cap.handle_session) srv.start() smtp_ = smtplib.SMTP('127.0.0.1', 2525, local_hostname='localhost', timeout=15) smtp_.ehlo() smtp_.quit()
def test_AUTH_CRAM_MD5(self): sessions = {} cap = smtp.smtp(sessions, {'enabled': 'True', 'port': 2500, 'banner': 'Test'}) socket = create_socket(("0.0.0.0", 2500)) srv = StreamServer(socket, cap.handle_session) srv.start() def encode_cram_md5(challenge, user, password): challenge = base64.decodestring(challenge) response = user + " " + hmac.HMAC(password, challenge).hexdigest() return base64.b64encode(response) smtp_ = smtplib.SMTP('127.0.0.1', 2500, local_hostname='localhost', timeout=15) _, resp = smtp_.docmd("AUTH", "CRAM-MD5") code, resp = smtp_.docmd(encode_cram_md5(resp, "test", "test")) # For now, the server's going to return a 535 code. self.assertEqual(code, 535)