Пример #1
0
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()
Пример #2
0
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()
Пример #3
0
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()
Пример #4
0
 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"}
Пример #5
0
 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"}
Пример #6
0
 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"}
Пример #7
0
 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"}
Пример #8
0
 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'}
Пример #9
0
 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'}