From 5aeced5c2e9e92e0af0a72e7cae86a8016ba65b0 Mon Sep 17 00:00:00 2001 From: Joshua Tauberer Date: Sat, 31 Aug 2019 09:15:04 -0400 Subject: [PATCH] add a test for fail2ban monitoring managesieve --- tests/fail2ban.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/fail2ban.py b/tests/fail2ban.py index 0a3c1da4..1cb55eba 100644 --- a/tests/fail2ban.py +++ b/tests/fail2ban.py @@ -90,6 +90,26 @@ def pop_test(): if M: M.quit() +def managesieve_test(): + # We don't have a Python sieve client, so we'll + # just run the IMAP client and see what happens. + import imaplib + + try: + M = imaplib.IMAP4(hostname, 4190) + except ConnectionRefusedError: + # looks like fail2ban worked + raise IsBlocked() + + try: + M.login("fakeuser", "fakepassword") + raise Exception("authentication didn't fail") + except imaplib.IMAP4.error: + # authentication should fail + pass + finally: + M.logout() # shuts down connection, has nothing to do with login() + def http_test(url, expected_status, postdata=None, qsargs=None, auth=None): import urllib.parse import requests @@ -208,6 +228,9 @@ if __name__ == "__main__": # POP run_test(pop_test, [], 20, 30, 4) + # Managesieve + run_test(managesieve_test, [], 20, 30, 4) + # Mail-in-a-Box control panel run_test(http_test, ["/admin/me", 200], 20, 30, 1)