class AllpluginTestCase(unittest.TestCase): """Tests that pass with a default config""" def setUp(self): config = RawConfigParser() config.read([CONFDIR + '/fuglu.conf.dist']) config.set('main', 'disablebounces', '1') guess_clamav_socket(config) self.mc = MainController(config) self.tempfiles = [] def tearDown(self): for tempfile in self.tempfiles: os.remove(tempfile) def test_virus(self): """Test if eicar is detected as virus""" from fuglu.shared import Suspect import shutil self.mc.load_plugins() if len(self.mc.plugins) == 0: raise Exception("plugins not loaded") sesshandler = SessionHandler(None, self.mc.config, self.mc.prependers, self.mc.plugins, self.mc.appenders) tempfilename = tempfile.mktemp(suffix='virus', prefix='fuglu-unittest', dir='/tmp') shutil.copy(TESTDATADIR + '/eicar.eml', tempfilename) self.tempfiles.append(tempfilename) suspect = Suspect('*****@*****.**', '*****@*****.**', tempfilename) pluglist = sesshandler.run_prependers(suspect) self.assertFalse( len(pluglist) == 0, "Viruscheck will fail, pluginlist empty after run_prependers") sesshandler.run_plugins(suspect, pluglist) self.assertTrue(suspect.is_virus(), "Eicar message was not detected as virus")
class AllpluginTestCase(unittest.TestCase): """Tests that pass with a default config""" def setUp(self): config = RawConfigParser() config.read([CONFDIR + '/fuglu.conf.dist']) config.set('main', 'disablebounces', '1') guess_clamav_socket(config) self.mc = MainController(config) self.tempfiles = [] def tearDown(self): for tempfile in self.tempfiles: os.remove(tempfile) def test_virus(self): """Test if eicar is detected as virus""" from fuglu.shared import Suspect import shutil self.mc.load_plugins() if len(self.mc.plugins) == 0: raise Exception("plugins not loaded") sesshandler = SessionHandler( None, self.mc.config, self.mc.prependers, self.mc.plugins, self.mc.appenders) tempfilename = tempfile.mktemp( suffix='virus', prefix='fuglu-unittest', dir='/tmp') shutil.copy(TESTDATADIR + '/eicar.eml', tempfilename) self.tempfiles.append(tempfilename) suspect = Suspect( '*****@*****.**', '*****@*****.**', tempfilename) pluglist = sesshandler.run_prependers(suspect) self.assertFalse( len(pluglist) == 0, "Viruscheck will fail, pluginlist empty after run_prependers") sesshandler.run_plugins(suspect, pluglist) self.assertTrue( suspect.is_virus(), "Eicar message was not detected as virus")
def test_prepender(self): """Test prepender plugin raising exception""" config = RawConfigParser() # -------------# # config: main # # -------------# config.add_section("main") config.set('main', 'plugins', '') config.set('main', 'prependers', 'sessionhandler_test.RaiseExceptionPrepender') config.set('main', 'appenders', '') # ------------------- # # config: performance # # ------------------- # config.add_section("performance") # minimum scanner threads config.set('performance', 'minthreads', 1) # maximum scanner threads config.set('performance', 'maxthreads', 1) # Method for parallelism, either 'thread' or 'process' config.set('performance', 'backend', 'process') mc = MainController(config) mc.propagate_core_defaults() ok = mc.load_plugins() suspect = Suspect('*****@*****.**', '*****@*****.**', '/dev/null') shandler = SessionHandler(None, config, mc.prependers, mc.plugins, mc.appenders, 0) pluglist, applist = shandler.run_prependers(suspect) shandler.run_plugins(suspect, pluglist) ptags = suspect.get_tag("processingerrors") self.assertEqual([ 'Prepender RaiseExceptionPrepender failed: Prepender Plugin not implemented' ], ptags)
prependers.append(plugin) elif isinstance(pluginstance, AppenderPlugin): appenders.append(plugin) else: print("%s doesn't seem to be a fuglu plugin - ignoring" % plugin) config.set('main', 'plugins', ','.join(scanners)) config.set('main', 'appenders', ','.join(appenders)) config.set('main', 'prependers', ','.join(prependers)) # load plugin mc = MainController(config) mc.propagate_core_defaults() mc.load_extensions() ok = mc.load_plugins() if not ok: logging.error("Could not load plugin(s)") sys.exit(1) if opts.defaultconfig: sec = pluginstance.section print("Default config options for %s\n" % sec) try: for opt, val in config.items(sec): print("%s:%s" % (opt, val)) except NoSectionError: print("Plugin does not provide default options") sys.exit(0)
prependers.append(plugin) elif isinstance(pluginstance, AppenderPlugin): appenders.append(plugin) else: print("%s doesn't seem to be a fuglu plugin - ignoring" % plugin) config.set('main', 'plugins', ','.join(scanners)) config.set('main', 'appenders', ','.join(appenders)) config.set('main', 'prependers', ','.join(prependers)) # load plugin mc = MainController(config) mc.propagate_core_defaults() mc.load_extensions() ok = mc.load_plugins() if not ok: logging.error("Could not load plugin(s)") sys.exit(1) if opts.defaultconfig: sec = pluginstance.section print("Default config options for %s\n" % sec) try: for opt, val in config.items(sec): print("%s:%s" % (opt, val)) except ConfigParser.NoSectionError: print("Plugin does not provide default options") sys.exit(0)