def test_handler_lookup(): smtp = Smtp([]) assert smtp.lookup_handler("AUTH CRAM-MD5") == smtp.auth_CRAM_MD5 assert smtp.lookup_handler("AUTH LOGIN") == smtp.auth_LOGIN assert smtp.lookup_handler("AUTH PLAIN") == smtp.auth_PLAIN assert smtp.lookup_handler("AUTH") == smtp.auth_UNKNOWN assert smtp.lookup_handler("AUTH KURA") == smtp.auth_UNKNOWN assert smtp.lookup_handler("HELP") == smtp.do_HELP assert smtp.lookup_handler("DATA") == smtp.do_DATA assert smtp.lookup_handler("EHLO") == smtp.do_EHLO assert smtp.lookup_handler("ETRN") == smtp.do_ETRN assert smtp.lookup_handler("EXPN") == smtp.do_EXPN assert smtp.lookup_handler("HELO") == smtp.do_HELO assert smtp.lookup_handler("MAIL") == smtp.do_MAIL assert smtp.lookup_handler("NOOP") == smtp.do_NOOP assert smtp.lookup_handler("QUIT") == smtp.do_QUIT assert smtp.lookup_handler("RCPT") == smtp.do_RCPT assert smtp.lookup_handler("RSET") == smtp.do_RSET assert smtp.lookup_handler("VRFY") == smtp.do_VRFY assert smtp.lookup_handler("STARTTLS") == smtp.do_STARTTLS assert smtp.lookup_handler("KURA") == smtp.do_UNKNOWN assert smtp.lookup_handler("") == smtp.do_UNKNOWN assert smtp.lookup_handler("STARTTLS") == smtp.do_STARTTLS assert smtp.lookup_handler("HELP DATA") == smtp.help_DATA assert smtp.lookup_handler("HELP EHLO") == smtp.help_EHLO assert smtp.lookup_handler("HELP ETRN") == smtp.help_ETRN assert smtp.lookup_handler("HELP EXPN") == smtp.help_EXPN assert smtp.lookup_handler("HELP HELO") == smtp.help_HELO assert smtp.lookup_handler("HELP MAIL") == smtp.help_MAIL assert smtp.lookup_handler("HELP NOOP") == smtp.help_NOOP assert smtp.lookup_handler("HELP QUIT") == smtp.help_QUIT assert smtp.lookup_handler("HELP RCPT") == smtp.help_RCPT assert smtp.lookup_handler("HELP RSET") == smtp.help_RSET assert smtp.lookup_handler("HELP VRFY") == smtp.help_VRFY assert smtp.lookup_handler("HELP KURA") == smtp.help_UNKNOWN
def test_initiation(): cfile = create_config(("",)) with mock.patch("os.access", return_value=False), mock.patch( "socket.getfqdn", return_value="a.blackhole.io" ): conf = Config(cfile) conf.load() smtp = Smtp([]) assert smtp.fqdn == "a.blackhole.io"
def _run(self, ready_event): asyncio.set_event_loop(self.loop) conf = Config(None) conf.mailname = "blackhole.io" _server = self.loop.create_server(lambda: Smtp([]), sock=self.sock) self.server = self.loop.run_until_complete(_server) self.loop.call_soon(ready_event.set) self.loop.run_forever() self.server.close() self.loop.run_until_complete(self.server.wait_closed()) self.loop.close() self.server = None
def test_unknown_handlers(): # Protection against adding/removing without updating tests verbs = [ "do_DATA", "do_EHLO", "do_ETRN", "do_EXPN", "do_HELO", "do_HELP", "do_MAIL", "do_NOOP", "do_NOT_IMPLEMENTED", "do_QUIT", "do_RCPT", "do_RSET", "do_STARTTLS", "do_UNKNOWN", "do_VRFY", ] helps = [ "help_AUTH", "help_DATA", "help_EHLO", "help_ETRN", "help_EXPN", "help_HELO", "help_MAIL", "help_NOOP", "help_QUIT", "help_RCPT", "help_RSET", "help_UNKNOWN", "help_VRFY", ] auths = ["auth_CRAM_MD5", "auth_LOGIN", "auth_PLAIN", "auth_UNKNOWN"] smtp = Smtp([]) for mem in inspect.getmembers(smtp, inspect.ismethod): f, _ = mem if f.startswith("do_"): assert f in verbs if f.startswith("help_"): assert f in helps if f.startswith("auth_"): assert f in auths
def test_auth_mechanisms(): smtp = Smtp([]) assert smtp.get_auth_members() == ["CRAM-MD5", "LOGIN", "PLAIN"]