mirror of https://github.com/fail2ban/fail2ban
added a test case for upgrade database from v2 (additionally to existing v1);
parent
4dbc77dbbb
commit
ef7f3230ec
|
@ -112,6 +112,33 @@ class DatabaseTest(LogCaptureTestCase):
|
||||||
self.assertRaises(NotImplementedError, self.db.updateDb, Fail2BanDb.__version__ + 1)
|
self.assertRaises(NotImplementedError, self.db.updateDb, Fail2BanDb.__version__ + 1)
|
||||||
os.remove(self.db._dbBackupFilename)
|
os.remove(self.db._dbBackupFilename)
|
||||||
|
|
||||||
|
def testUpdateDb2(self):
|
||||||
|
if Fail2BanDb is None: # pragma: no cover
|
||||||
|
return
|
||||||
|
shutil.copyfile(
|
||||||
|
os.path.join(TEST_FILES_DIR, 'database_v2.db'), self.dbFilename)
|
||||||
|
self.db = Fail2BanDb(self.dbFilename)
|
||||||
|
self.assertEqual(self.db.getJailNames(), set(['pam-generic']))
|
||||||
|
self.assertEqual(self.db.getLogPaths(), set(['/var/log/auth.log']))
|
||||||
|
bans = self.db.getBans()
|
||||||
|
self.assertEqual(len(bans), 2)
|
||||||
|
# compare first ticket completely:
|
||||||
|
ticket = FailTicket("1.2.3.7", 1417595494, [
|
||||||
|
u'Dec 3 09:31:08 f2btest test:auth[27658]: pam_unix(test:auth): authentication failure; logname= uid=0 euid=0 tty=test ruser= rhost=1.2.3.7',
|
||||||
|
u'Dec 3 09:31:32 f2btest test:auth[27671]: pam_unix(test:auth): authentication failure; logname= uid=0 euid=0 tty=test ruser= rhost=1.2.3.7',
|
||||||
|
u'Dec 3 09:31:34 f2btest test:auth[27673]: pam_unix(test:auth): authentication failure; logname= uid=0 euid=0 tty=test ruser= rhost=1.2.3.7'
|
||||||
|
])
|
||||||
|
ticket.setAttempt(3)
|
||||||
|
self.assertEqual(bans[0], ticket)
|
||||||
|
# second ban found also:
|
||||||
|
self.assertEqual(bans[1].getIP(), "1.2.3.8")
|
||||||
|
# updated ?
|
||||||
|
self.assertEqual(self.db.updateDb(Fail2BanDb.__version__), Fail2BanDb.__version__)
|
||||||
|
# further update should fail:
|
||||||
|
self.assertRaises(NotImplementedError, self.db.updateDb, Fail2BanDb.__version__ + 1)
|
||||||
|
# clean:
|
||||||
|
os.remove(self.db._dbBackupFilename)
|
||||||
|
|
||||||
def testAddJail(self):
|
def testAddJail(self):
|
||||||
if Fail2BanDb is None: # pragma: no cover
|
if Fail2BanDb is None: # pragma: no cover
|
||||||
return
|
return
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue