def test_simple(self): s = w3af_core_status(Mock()) self.assertEqual(s.get_status(), 'Stopped.') self.assertFalse(s.is_running()) s.start() self.assertTrue(s.is_running()) s.set_current_fuzzable_request('crawl', 'unittest_fr') s.set_running_plugin('crawl', 'unittest_plugin') expected = 'Crawling unittest_fr using crawl.unittest_plugin' self.assertEqual(s.get_status(), expected) s.pause(True) self.assertEqual(s.get_status(), 'Paused.') s.pause(False) expected = 'Crawling unittest_fr using crawl.unittest_plugin' self.assertEqual(s.get_status(), expected) s.set_current_fuzzable_request('audit', 'unittest_fr_audit') s.set_running_plugin('audit', 'unittest_plugin_audit') expected = 'Crawling unittest_fr using crawl.unittest_plugin\n'\ 'Auditing unittest_fr_audit using audit.unittest_plugin_audit' self.assertEqual(s.get_status(), expected) s.stop() self.assertEqual(s.get_status(), 'Stopped.') self.assertFalse(s.is_running())
def test_queue_status_not_started(self): s = w3af_core_status(w3afCore()) self.assertEqual(s.get_crawl_input_speed(), None) self.assertEqual(s.get_crawl_output_speed(), None) self.assertEqual(s.get_crawl_qsize(), None) self.assertEqual(s.get_crawl_current_fr(), None) self.assertEqual(s.get_crawl_eta(), None) self.assertEqual(s.get_audit_input_speed(), None) self.assertEqual(s.get_audit_output_speed(), None) self.assertEqual(s.get_audit_qsize(), None) self.assertEqual(s.get_audit_current_fr(), None) self.assertEqual(s.get_audit_eta(), None)
def test_queue_status_not_started(self): core = w3afCore() s = w3af_core_status(core) self.assertEqual(s.get_crawl_input_speed(), None) self.assertEqual(s.get_crawl_output_speed(), None) self.assertEqual(s.get_crawl_qsize(), None) self.assertEqual(s.get_crawl_current_fr(), None) self.assertEqual(s.get_crawl_eta(), None) self.assertEqual(s.get_audit_input_speed(), None) self.assertEqual(s.get_audit_output_speed(), None) self.assertEqual(s.get_audit_qsize(), None) self.assertEqual(s.get_audit_current_fr(), None) self.assertEqual(s.get_audit_eta(), None) core.worker_pool.terminate_join()
def handle_exception(self, phase, plugin_name, fuzzable_request, _exception): """ Get the exception information, and put it into the output queue then, the strategy will get the items from the output queue and handle the exceptions. :param plugin_name: The plugin that generated the exception :param fuzzable_request: The fuzzable request that was sent as input to the plugin when the exception was raised :param _exception: The exception object """ except_type, except_class, tb = sys.exc_info() enabled_plugins = pprint_plugins(self._w3af_core) status = w3af_core_status(self._w3af_core) status.set_running_plugin(phase, plugin_name, log=False) status.set_current_fuzzable_request(phase, fuzzable_request) exception_data = ExceptionData(status, _exception, tb, enabled_plugins) self._out_queue.put(exception_data)