summaryrefslogtreecommitdiff
path: root/fail2ban/tests/banmanagertestcase.py
diff options
context:
space:
mode:
Diffstat (limited to 'fail2ban/tests/banmanagertestcase.py')
-rw-r--r--fail2ban/tests/banmanagertestcase.py34
1 files changed, 25 insertions, 9 deletions
diff --git a/fail2ban/tests/banmanagertestcase.py b/fail2ban/tests/banmanagertestcase.py
index a5b37ef6..cf25ac0f 100644
--- a/fail2ban/tests/banmanagertestcase.py
+++ b/fail2ban/tests/banmanagertestcase.py
@@ -29,6 +29,7 @@ import unittest
from .utils import setUpMyTime, tearDownMyTime
from ..server.banmanager import BanManager
+from ..server.ipdns import DNSUtils
from ..server.ticket import BanTicket
class AddFailure(unittest.TestCase):
@@ -99,23 +100,23 @@ class AddFailure(unittest.TestCase):
self.assertFalse(self.__banManager._inBanList(ticket))
def testBanTimeIncr(self):
- ticket = BanTicket(self.__ticket.getIP(), self.__ticket.getTime())
+ ticket = BanTicket(self.__ticket.getID(), self.__ticket.getTime())
## increase twice and at end permanent, check time/count increase:
c = 0
for i in (1000, 2000, -1):
self.__banManager.addBanTicket(self.__ticket); c += 1
ticket.setBanTime(i)
self.assertFalse(self.__banManager.addBanTicket(ticket)); # no incr of c (already banned)
- self.assertEqual(str(self.__banManager.getTicketByID(ticket.getIP())),
- "BanTicket: ip=%s time=%s bantime=%s bancount=%s #attempts=0 matches=[]" % (ticket.getIP(), ticket.getTime(), i, c))
+ self.assertEqual(str(self.__banManager.getTicketByID(ticket.getID())),
+ "BanTicket: ip=%s time=%s bantime=%s bancount=%s #attempts=0 matches=[]" % (ticket.getID(), ticket.getTime(), i, c))
## after permanent, it should remain permanent ban time (-1):
self.__banManager.addBanTicket(self.__ticket); c += 1
ticket.setBanTime(-1)
self.assertFalse(self.__banManager.addBanTicket(ticket)); # no incr of c (already banned)
ticket.setBanTime(1000)
self.assertFalse(self.__banManager.addBanTicket(ticket)); # no incr of c (already banned)
- self.assertEqual(str(self.__banManager.getTicketByID(ticket.getIP())),
- "BanTicket: ip=%s time=%s bantime=%s bancount=%s #attempts=0 matches=[]" % (ticket.getIP(), ticket.getTime(), -1, c))
+ self.assertEqual(str(self.__banManager.getTicketByID(ticket.getID())),
+ "BanTicket: ip=%s time=%s bantime=%s bancount=%s #attempts=0 matches=[]" % (ticket.getID(), ticket.getTime(), -1, c))
def testUnban(self):
btime = self.__banManager.getBanTime()
@@ -154,6 +155,21 @@ class AddFailure(unittest.TestCase):
finally:
self.__banManager.setBanTime(btime)
+ def testBanList(self):
+ tickets = [
+ BanTicket('192.0.2.1', 1167605999.0),
+ BanTicket('192.0.2.2', 1167605999.0),
+ ]
+ tickets[1].setBanTime(-1)
+ for t in tickets:
+ self.__banManager.addBanTicket(t)
+ self.assertSortedEqual(self.__banManager.getBanList(ordered=True, withTime=True),
+ [
+ '192.0.2.1 \t2006-12-31 23:59:59 + 600 = 2007-01-01 00:09:59',
+ '192.0.2.2 \t2006-12-31 23:59:59 + -1 = 9999-12-31 23:59:59'
+ ]
+ )
+
class StatusExtendedCymruInfo(unittest.TestCase):
def setUp(self):
@@ -161,10 +177,10 @@ class StatusExtendedCymruInfo(unittest.TestCase):
super(StatusExtendedCymruInfo, self).setUp()
unittest.F2B.SkipIfNoNetwork()
setUpMyTime()
- self.__ban_ip = "93.184.216.34"
- self.__asn = "15133"
- self.__country = "EU"
- self.__rir = "ripencc"
+ self.__ban_ip = iter(DNSUtils.dnsToIp("resolver1.opendns.com")).next()
+ self.__asn = "36692"
+ self.__country = "US"
+ self.__rir = "arin"
ticket = BanTicket(self.__ban_ip, 1167605999.0)
self.__banManager = BanManager()
self.assertTrue(self.__banManager.addBanTicket(ticket))