def test_build_options(self): task = Task() id = task.add_path(__file__, options={"free": "yes"}) task.load_from_db(id) a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) a.set_task(task) expected = { "clock": task.clock, "enforce_timeout": False, "id": task.id, "package": "", "target": None, "terminate_processes": False, "ip": "192.168.56.1", "port": 4242, "timeout": 120, "options": "free=yes" } assert a.options == {} a.build_options() assert a.options == expected a.build_options({ "file_name": "doge.py", "options": {"doges": "many"}, "category": "file" }) assert a.options["options"] == "doges=many,free=yes" assert a.options["file_name"] == "doge.py" assert a.options["category"] == "file"
def test_get_analysis_status(self): a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) a.analysis = mock.MagicMock() a.analysis.get_status = mock.MagicMock(return_value="starting") assert a.get_analysis_status() == "starting"
def test_set_target(self): task = Task() id = task.add_path(__file__) task.load_from_db(id) a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) with pytest.raises(NotImplementedError): a.set_target(task.targets)
def test_release_machine_lock(self): a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) a.init(self.db) a.release_machine_lock() a.machine_lock.release.assert_called_once() assert a.lock_released
def test_action_requested(self): a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) a.analysis = mock.MagicMock() a.action_lock = mock.MagicMock() a.action_lock.locked = mock.MagicMock(return_value=True) a.analysis.changed = True assert a.action_requested()
def test_set_analysis_status(self): a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) a.analysis = mock.MagicMock() a.request_scheduler_action = mock.MagicMock() a.set_analysis_status("starting") a.analysis.set_status.assert_called_once_with("starting") a.request_scheduler_action.assert_not_called()
def test_wait_finish(self, mts): task = Task() id = task.add_url("http://example.com/42") task.load_from_db(id) a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) a.set_task(task) a.analysis.status = "stoppped" a.wait_finish() mts.assert_not_called()
def test_set_task(self): task = Task() id = task.add_path(__file__) task.load_from_db(id) a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) a.set_task(task) assert a.task == task assert isinstance(a.analysis, Analysis) assert a.name == "task_%s_AnalysisManager" % task.id
def test_request_scheduler_action(self): task = Task() id = task.add_url("http://example.com/42") task.load_from_db(id) a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) a.set_task(task) a.action_lock = mock.MagicMock() a.action_lock.locked = mock.MagicMock(return_value=False) a.request_scheduler_action() a.action_lock.acquire.assert_has_calls([ mock.call(False), mock.call(True) ]) a.action_lock.release.assert_called_once() assert a.override_status is None
def test_run(self): a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) with pytest.raises(NotImplementedError): a.run()
def test_init(self): a = abstracts.AnalysisManager( FakeMachine(), mock.MagicMock(), mock.MagicMock() ) assert a.init(self.db)