Esempio n. 1
0
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
Esempio n. 2
0
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"
Esempio n. 3
0
 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
Esempio n. 4
0
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
Esempio n. 5
0
def test_auth_mechanisms():
    smtp = Smtp([])
    assert smtp.get_auth_members() == ["CRAM-MD5", "LOGIN", "PLAIN"]