Skip to content
Permalink
Browse files

add a test for fail2ban monitoring managesieve

  • Loading branch information
JoshData committed Aug 31, 2019
1 parent 46f64e0 commit 5aeced5c2e9e92e0af0a72e7cae86a8016ba65b0
Showing with 23 additions and 0 deletions.
  1. +23 −0 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 @@ def run_test(testfunc, args, count, within_seconds, parallel):
# 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)

0 comments on commit 5aeced5

Please sign in to comment.
You can’t perform that action at this time.