import unittest, pyparsing from definitions import ROOT_DIR import Core.Controller as Ctrl pcap = ROOT_DIR + "/../resources/test/reference_1998.pcap" controller = Ctrl.Controller(pcap_file_path=pcap, do_extra_tests=False, non_verbose=False) controller.load_pcap_statistics(flag_write_file=False, flag_recalculate_stats=True, flag_print_statistics=False) class UnitTestPyparsing(unittest.TestCase): def test_named_query(self): self.assertEqual(controller.statistics.process_db_query('least_used(portnumber)'), [58645, 59844]) self.assertEqual(controller.statistics.process_db_query('most_used(portnumber)'), 443) self.assertEqual(controller.statistics.process_db_query('most_used(protocolname)'), 'IPv4') self.assertEqual(controller.statistics.process_db_query('least_used(protocolname)'), 'UDP') self.assertEqual(controller.statistics.process_db_query('most_used(ttlvalue)'), 64) self.assertEqual(controller.statistics.process_db_query('least_used(ttlvalue)'), 255) self.assertEqual(controller.statistics.process_db_query('most_used(mssvalue)'), 1460) self.assertEqual(controller.statistics.process_db_query('least_used(mssvalue)'), 1460) self.assertEqual(controller.statistics.process_db_query('most_used(winsize)'), 65535) self.assertEqual(controller.statistics.process_db_query('most_used(ipclass)'), 'A') self.assertEqual(controller.statistics.process_db_query('least_used(ipclass)'), ['A-private', 'C', 'C-private']) self.assertEqual(controller.statistics.process_db_query('avg(pktsreceived)'), 90.36363636363636) self.assertEqual(controller.statistics.process_db_query('avg(pktssent)'), 90.36363636363636) self.assertEqual(controller.statistics.process_db_query('avg(kbytesreceived)'), 30.289683948863637) self.assertEqual(controller.statistics.process_db_query('avg(kbytessent)'), 30.289683948863637) self.assertEqual(controller.statistics.process_db_query('avg(ttlvalue)'), 75.08695652173913) self.assertEqual(controller.statistics.process_db_query('avg(mss)'), 1460.0) self.assertEqual(controller.statistics.process_db_query('all(ipaddress)'), ['10.0.2.15','104.83.103.45','13.107.21.200','131.253.61.100','172.217.23.142', '172.217.23.174','192.168.33.254','204.79.197.200','23.51.123.27','35.161.3.50', '52.11.17.245','52.34.37.177','52.39.210.199','52.41.250.141','52.85.173.182', '54.149.74.139','54.187.98.195','54.192.44.108','54.192.44.177','72.247.178.113', '72.247.178.67','93.184.220.29']) # undefined Query with self.assertRaises(pyparsing.ParseException): controller.statistics.process_db_query('avg(notDefinedQuery)')