From bd54d472b37a98bed9bd503f95402e980aa4fcf2 Mon Sep 17 00:00:00 2001 From: sebres Date: Thu, 5 Jul 2018 16:23:33 +0200 Subject: [PATCH] extend test-cases to check the database is still operable (not locked) after all the errors during the simulation --- fail2ban/tests/databasetestcase.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fail2ban/tests/databasetestcase.py b/fail2ban/tests/databasetestcase.py index 8c154c92..cb8beecc 100644 --- a/fail2ban/tests/databasetestcase.py +++ b/fail2ban/tests/databasetestcase.py @@ -268,6 +268,7 @@ class DatabaseTest(LogCaptureTestCase): self.assertEqual(readtickets[i].getIP(), ticket.getIP()) self.assertEqual(len(readtickets[i].getMatches()), len(ticket.getMatches())) + self.pruneLog('[test-phase 2] simulate errors') ## simulate errors in dumps/loads: priorEnc = database.PREFER_ENC try: @@ -286,6 +287,13 @@ class DatabaseTest(LogCaptureTestCase): self.assertEqual(len(readtickets), 14) finally: database.PREFER_ENC = priorEnc + + ## check the database is still operable (not locked) after all the errors: + self.pruneLog('[test-phase 3] still operable?') + self.db.addBan(self.jail, FailTicket("127.0.0.8")) + readtickets = self.db.getBans(jail=self.jail) + self.assertEqual(len(readtickets), 15) + self.assertNotLogged("json loads failed", "json dumps failed") def _testAdd3Bans(self): self.testAddJail()