def test_invalid_configuration(self): # Explicitly want a clean CWD here. set_cwd(tempfile.mkdtemp()) cuckoo_create() cf = CuckooFeedback() with pytest.raises(CuckooFeedbackError) as e: cf.send_feedback(CuckooFeedbackObject( name=None, email="*****@*****.**", company="foo" )) e.match("Could not validate") with pytest.raises(CuckooFeedbackError) as e: cf.send_feedback(CuckooFeedbackObject( name="foo", email=None, company="foo" )) e.match("Could not validate") with pytest.raises(CuckooFeedbackError) as e: cf.send_feedback(CuckooFeedbackObject( name="foo", email="a@b,com", company="foo" )) e.match("Could not validate") with pytest.raises(CuckooFeedbackError) as e: cf.send_feedback(CuckooFeedbackObject( name="foo", email="*****@*****.**", company=None )) e.match("Could not validate")
def test_send_data(self, p, q): q._get_report.return_value = self.report( "tests/files/sample_analysis_storage") p.post.return_value.json.return_value = { "status": True, "feedback_id": 1, } feedback = CuckooFeedback() cf = CuckooFeedbackObject("message", "*****@*****.**", "name", "company", True) cf.include_report_web(1) cf.include_analysis() assert feedback.send_feedback(cf) == 1 p.post.assert_called_once_with(feedback.endpoint, data={ "feedback": mock.ANY, }, files={ "file": mock.ANY, }, headers=mock.ANY) # Ensure that the second entry for each file is an open file handle. files = p.post.call_args[1]["files"] z = zipfile.ZipFile(files["file"]) assert "Starting analyzer" in z.read("analysis.log") assert len(z.read("cuckoo.log")) == 15274
def test_send_data(self, p, q): q._get_report.return_value = self.report( "tests/files/sample_analysis_storage" ) p.post.return_value.json.return_value = { "status": True, "feedback_id": 1, } feedback = CuckooFeedback() cf = CuckooFeedbackObject( "message", "*****@*****.**", "name", "company", True ) cf.include_report_web(1) cf.include_analysis() assert feedback.send_feedback(cf) == 1 p.post.assert_called_once_with( feedback.endpoint, data={ "feedback": mock.ANY, }, files={ "file": mock.ANY, }, headers=mock.ANY ) # Ensure that the second entry for each file is an open file handle. files = p.post.call_args[1]["files"] z = zipfile.ZipFile(files["file"]) assert "Starting analyzer" in z.read("analysis.log") assert len(z.read("cuckoo.log")) == 15274
def run(self, results): # Nothing to see here. if not results.get("debug", {}).get("errors"): return feedback = CuckooFeedback() if not feedback.enabled(): return fo = CuckooFeedbackObject( message="One or more errors occurred during an analysis", automated=True) for error in results["debug"]["errors"]: fo.add_error(error) fo.gather_export_files(self.analysis_path) feedback.send_feedback(fo)
def test_send_data(self, p, q, c): set_cwd(tempfile.mkdtemp()) fake_task = cwd(analysis=1) shutil.copytree("tests/files/sample_analysis_storage", fake_task) q.get_report.return_value = self.report( "tests/files/sample_analysis_storage") p.post.return_value.json.return_value = { "status": True, "feedback_id": 1, } c.from_confdir.return_value = {} feedback = CuckooFeedback() cf = CuckooFeedbackObject("message", "*****@*****.**", "name", "company", True, include_files=True, task_id=1) cf.include_report_web(1) assert feedback.send_feedback(cf) == 1 p.post.assert_called_once_with(feedback.endpoint, data={ "feedback": mock.ANY, }, files={ "file": mock.ANY, }, headers=mock.ANY) # Ensure that the second entry for each file is an open file handle. files = p.post.call_args[1]["files"] z = zipfile.ZipFile(files["file"]) assert "Starting analyzer" in z.read("analysis.log") assert len(z.read("cuckoo.log")) == 15274 shutil.rmtree(fake_task)