def test_purge_reports(self): now = time.time() c = yield Cracker(ip_address="192.168.1.1", first_time=now, latest_time=now, total_reports=0, current_reports=0).save() c2 = yield Cracker(ip_address="192.168.1.2", first_time=now, latest_time=now, total_reports=0, current_reports=0).save() c3 = yield Cracker(ip_address="192.168.1.3", first_time=now, latest_time=now, total_reports=0, current_reports=0).save() yield controllers.add_report_to_cracker(c, "127.0.0.1", when=now) yield controllers.add_report_to_cracker(c, "127.0.0.2", when=now) yield controllers.add_report_to_cracker(c, "127.0.0.9", when=now) yield controllers.add_report_to_cracker(c2, "127.0.0.3", when=now) yield controllers.purge_legacy_addresses() crackers = yield Cracker.all() self.assertEqual(len(crackers), 3, "Should still have three crackers after purging legacy") reports = yield Report.all() self.assertEqual(len(reports), 4, "Should still have four reports after purging legacy") yield controllers.purge_reported_addresses() crackers = yield Cracker.all() self.assertEqual(len(crackers), 0, "Should have no crackers after purging reports") reports = yield Report.all() self.assertEqual(len(reports), 0, "Should have no reports after purging reports")
def test_add_cracker(self): cracker_ip = "127.0.0.1" now = time.time() cracker = Cracker(ip_address=cracker_ip, first_time=now, latest_time=now, total_reports=0, current_reports=0, resiliency=0) cracker = yield cracker.save() c2 = yield controllers.get_cracker(cracker_ip) yield self.assertIsNotNone(c2) self.assertEqual(c2.ip_address, cracker.ip_address, "Save and re-fetch cracker from database") self.assertEqual(c2.id, cracker.id, "Save and re-fetch cracker from database") self.assertEqual(c2.first_time, cracker.first_time, "Save and re-fetch cracker from database") self.assertEqual(c2.latest_time, cracker.latest_time, "Save and re-fetch cracker from database") self.assertEqual(c2.total_reports, cracker.total_reports, "Save and re-fetch cracker from database") self.assertEqual(c2.current_reports, cracker.current_reports, "Save and re-fetch cracker from database") self.assertEqual(c2.id, cracker.id, "Save and re-fetch cracker from database")
def test_purge_ip(self): now = time.time() c = yield Cracker(ip_address="192.168.211.1", first_time=now, latest_time=now, total_reports=0, current_reports=0).save() c2 = yield Cracker(ip_address="192.168.211.2", first_time=now, latest_time=now, total_reports=0, current_reports=0).save() c3 = yield Cracker(ip_address="192.168.211.3", first_time=now, latest_time=now, total_reports=0, current_reports=0).save() yield controllers.add_report_to_cracker(c, "127.0.0.1", when=now) yield controllers.add_report_to_cracker(c, "127.0.0.2", when=now) yield controllers.add_report_to_cracker(c, "127.0.0.9", when=now) yield controllers.add_report_to_cracker(c2, "127.0.0.3", when=now) legacy = yield Legacy(ip_address="192.168.211.1", retrieved_time=now).save() legacy = yield Legacy(ip_address="192.168.211.2", retrieved_time=now).save() yield controllers.purge_ip("192.168.211.1") crackers = yield Cracker.find(orderby='ip_address ASC') self.assertEqual(len(crackers), 2, "Should still have two crackers after purging one") self.assertEquals(crackers[0].ip_address, "192.168.211.2", "Should remove the right cracker") self.assertEquals(crackers[1].ip_address, "192.168.211.3", "Should remove the right cracker") reports = yield Report.all() self.assertEqual(len(reports), 1, "Should still have one report left after purging cracker with three reports") self.assertEquals(reports[0].ip_address, "127.0.0.3", "Should remove the right report") legacy = yield Legacy.all() self.assertEqual(len(legacy), 1, "Should still have one legacy reports after purging one") self.assertEquals(legacy[0].ip_address, "192.168.211.2", "Should remove the right legacy host")