async def test_mode_and_delay_directive(event_loop, unused_tcp_port): cfile = create_config( ("listen=:{} delay=5 mode=bounce".format(unused_tcp_port),) ) conf = Config(cfile).load() sock = _socket("127.0.0.1", unused_tcp_port, socket.AF_INET) controller = Controller(sock) controller.start() conf.flags_from_listener("127.0.0.1", unused_tcp_port) host, port = sock.getsockname() with SMTP(host, port) as client: msg = [ "From: [email protected]", "To: [email protected]", "Subject: Test", "X-Blackhole-Mode: accept", "X-Blackhole-Delay: 30", "", "Testing 1, 2, 3", ] msg = "\n".join(msg) start = time.time() code, resp = client.data(msg.encode("utf-8")) stop = time.time() assert code in [450, 451, 452, 458, 521, 550, 551, 552, 553, 571] assert round(stop - start) in (4, 5, 6) controller.stop()
async def test_delay_directive(event_loop, unused_tcp_port): cfile = create_config(('listen=:{} delay=5'.format(unused_tcp_port), )) conf = Config(cfile).load() sock = _socket('127.0.0.1', unused_tcp_port, socket.AF_INET) controller = Controller(sock) controller.start() conf.flags_from_listener('127.0.0.1', unused_tcp_port) host, port = sock.getsockname() with SMTP(host, port) as client: msg = ['From: [email protected]', 'To: [email protected]', 'Subject: Test', 'X-Blackhole-Mode: bounce', 'X-Blackhole-Delay: 30', '', 'Testing 1, 2, 3'] msg = '\n'.join(msg) start = time.time() code, resp = client.data(msg.encode('utf-8')) stop = time.time() assert code == 250 assert round(stop - start) in (4, 5, 6) controller.stop()
def test_tls_listen_flags_special_ipv6(self): cfile = create_config(("listen=:::465 mode=bounce",)) conf = Config(cfile).load() assert conf.flags_from_listener("::1", 465) == {"mode": "bounce"}
def test_listen_flags_special_ipv4(self): cfile = create_config(("listen=:25 mode=bounce",)) conf = Config(cfile).load() assert conf.flags_from_listener("127.0.0.1", 25) == {"mode": "bounce"} assert conf.flags_from_listener("0.0.0.0", 25) == {"mode": "bounce"}
def test_tls_listen_flags_special_ipv6(self): cfile = create_config(("listen=:::465 mode=bounce", )) conf = Config(cfile).load() assert conf.flags_from_listener("::1", 465) == {"mode": "bounce"}
def test_listen_flags_special_ipv4(self): cfile = create_config(("listen=:25 mode=bounce", )) conf = Config(cfile).load() assert conf.flags_from_listener("127.0.0.1", 25) == {"mode": "bounce"} assert conf.flags_from_listener("0.0.0.0", 25) == {"mode": "bounce"}
def test_tls_listen_flags_special_ipv6(self): cfile = create_config(('listen=:::465 mode=bounce', )) conf = Config(cfile).load() assert conf.flags_from_listener('::1', 465) == {'mode': 'bounce'}
def test_listen_flags_special_ipv4(self): cfile = create_config(('listen=:25 mode=bounce', )) conf = Config(cfile).load() assert conf.flags_from_listener('127.0.0.1', 25) == {'mode': 'bounce'} assert conf.flags_from_listener('0.0.0.0', 25) == {'mode': 'bounce'}