コード例 #1
0
 def testreport_lots_of_fails(self):
     log = ['[%d][1.1.1.%d][FAIL]' % (i, i//3) for i in range(900)]
     d = BadLoginDetector(3,3)
     for e in log:
         newentry = LogEntry.fromstring(e)
         d.process(newentry)
     self.assertEqual(len(d.report()), 300)
コード例 #2
0
 def testprocess_fails_far_apart(self):
     log = ['[%d][1.1.1.1][SUCCESS]' % i for i in range(1000)]
     log[100] = '[100][2.2.2.2][FAIL]'
     log[200] = '[200][2.2.2.2][FAIL]'
     log[300] = '[300][2.2.2.2][FAIL]'
     d = BadLoginDetector(3,200)
     for e in log:
         newentry = LogEntry.fromstring(e)
         self.assertTrue(d.process(newentry))
コード例 #3
0
 def testreport_onefail_too_far_apart(self):
     log = ['[%d][1.1.1.1][SUCCESS]' % i for i in range(1000)]
     log[100] = '[100][2.2.2.2][FAIL]'
     log[200] = '[200][2.2.2.2][FAIL]'
     log[300] = '[300][2.2.2.2][FAIL]'
     d = BadLoginDetector(3,150)
     for e in log:
         newentry = LogEntry.fromstring(e)
         d.process(newentry)
     self.assertEqual(d.report(), [])
コード例 #4
0
 def testreport_twofails_same_ip(self):
     log = ['[%d][1.1.1.1][SUCCESS]' % i for i in range(1000)]
     log[100] = '[100][2.2.2.2][FAIL]'
     log[200] = '[200][2.2.2.2][FAIL]'
     log[300] = '[300][2.2.2.2][FAIL]'
     log[400] = '[400][2.2.2.2][FAIL]'
     d = BadLoginDetector(3,1000)
     for e in log:
         newentry = LogEntry.fromstring(e)
         d.process(newentry)
     self.assertEqual(d.report(), ['2.2.2.2'])
コード例 #5
0
 def testprocess_somefails(self):
     log = ['[%d][1.1.1.1][SUCCESS]' % i for i in range(1000)]
     log[100] = '[100][2.2.2.2][FAIL]'
     log[200] = '[200][2.2.2.2][FAIL]'
     log[300] = '[300][2.2.2.2][FAIL]'
     d = BadLoginDetector(3,1000)
     for e in log:
         newentry = LogEntry.fromstring(e)
         if newentry.time == 300:
             self.assertFalse(d.process(newentry))
         else:
             self.assertTrue(d.process(newentry))
コード例 #6
0
 def testprocess_all_success(self):
     log = ['[%d][1.1.1.1][SUCCESS]' % i for i in range(1000)]
     d = BadLoginDetector(3,1000)
     for e in log:
         newentry = LogEntry.fromstring(e)
         self.assertTrue(d.process(newentry))
コード例 #7
0
 def testprocess_allfails_far_apart(self):
     log = ['[%d][1.1.1.1][FAIL]' % i for i in range(1000)]
     d = BadLoginDetector(3,2)
     for e in log:
         newentry = LogEntry.fromstring(e)
         self.assertTrue(d.process(newentry))