예제 #1
0
 def test_launch_v2_file_already_scanned(self, m_probe_ctrl,
                                         m_celery_frontend, m_FileWeb):
     m_request = MagicMock()
     force = False
     mimetype_filtering = False
     resubmit_files = False
     probes = ["probe1", "probe2"]
     m_body = {
         "files": ["fileweb1"],
         "options": {
             "probes": probes,
             "force": force,
             "mimetype_filtering": mimetype_filtering,
             "resubmit_files": resubmit_files,
         }
     }
     m_file_ext = MagicMock()
     m_file_ext.scan = "scanid1"
     m_FileWeb.load_from_ext_id.return_value = m_file_ext
     expected = "The \"files\" parameter is invalid. File fileweb1 " \
                "already scanned"
     with self.assertRaises(api_scans.HTTPInvalidParam) as context:
         api_scans.launch_v2(m_request, m_body)
     m_probe_ctrl.check_probe.assert_not_called()
     m_celery_frontend.scan_launch.assert_not_called()
     self.assertEqual(context.exception.description, expected)
예제 #2
0
 def test_launch_v2_file_not_found(self, m_probe_ctrl, m_celery_frontend,
                                   m_FileExt):
     m_request = MagicMock()
     force = False
     mimetype_filtering = False
     resubmit_files = False
     probes = ["probe1", "probe2"]
     m_body = {
         "files": ["file_ext1", "file_ext2"],
         "options": {
             "probes": probes,
             "force": force,
             "mimetype_filtering": mimetype_filtering,
             "resubmit_files": resubmit_files,
         }
     }
     m_FileExt.load_from_ext_id.side_effect = \
         api_scans.IrmaDatabaseResultNotFound
     expected = "The \"files\" parameter is invalid. File file_ext1 " \
                "not found"
     with self.assertRaises(api_scans.HTTPInvalidParam) as context:
         api_scans.launch_v2(m_request, m_body)
     m_probe_ctrl.check_probe.assert_not_called()
     m_celery_frontend.scan_launch.assert_not_called()
     self.assertEqual(context.exception.description, expected)
예제 #3
0
 def test_launch_v2_file_deleted(self, m_probe_ctrl, m_celery_frontend,
                                 m_FileExt):
     m_request = MagicMock()
     force = False
     mimetype_filtering = False
     resubmit_files = False
     probes = ["probe1", "probe2"]
     m_body = {
         "files": ["file_ext1"],
         "options": {
             "probes": probes,
             "force": force,
             "mimetype_filtering": mimetype_filtering,
             "resubmit_files": resubmit_files,
         }
     }
     sha256 = "whatever"
     m_file_ext, m_file = MagicMock(), MagicMock()
     m_file.path = None
     m_file_ext.file = m_file
     m_file_ext.file.sha256 = sha256
     m_file_ext.scan = None
     m_FileExt.load_from_ext_id.return_value = m_file_ext
     expected = "The \"files\" parameter is invalid. File with hash " \
                "%s should be (re)uploaded" % sha256
     with self.assertRaises(api_scans.HTTPInvalidParam) as context:
         api_scans.launch_v2(m_request, m_body)
     m_probe_ctrl.check_probe.assert_not_called()
     m_celery_frontend.scan_launch.assert_not_called()
     self.assertEqual(context.exception.description, expected)
예제 #4
0
 def test_launch_v2_resubmit_files_wrong_type(self):
     m_request = MagicMock()
     m_body = {
         "files": [MagicMock()],
         "options": {
             "force": True,
             "mimetype_filtering": True,
             "resubmit_files": 17
         }
     }
     with self.assertRaises(HTTPInvalidParam):
         api_scans.launch_v2(m_request, m_body)
예제 #5
0
 def test_launch_v2_ok(self, m_check_probe, m_celery_frontend, m_FileExt):
     m_request = MagicMock()
     force = False
     mimetype_filtering = False
     resubmit_files = False
     probes = ["probe1", "probe2"]
     m_body = {
         "files": ["file_ext1"],
         "options": {
             "probes": probes,
             "force": force,
             "mimetype_filtering": mimetype_filtering,
             "resubmit_files": resubmit_files,
         }
     }
     m_file_ext = MagicMock()
     m_file_ext.scan = None
     m_FileExt.load_from_ext_id.return_value = m_file_ext
     result = api_scans.launch_v2(m_request, m_body)
     m_check_probe.assert_called_once_with(probes)
     m_celery_frontend.scan_launch.assert_called_once()
     self.assertIsScan(result)
     self.assertEqual(result["force"], str(force), "force value is wrong")
     self.assertEqual(result["mimetype_filtering"], str(mimetype_filtering),
                      "mimetype_filtering value is wrong")
     self.assertEqual(result["resubmit_files"], str(resubmit_files),
                      "resubmit_files value is wrong")
예제 #6
0
 def test_launch_v2_no_body(self):
     m_body = None
     m_request = MagicMock()
     with self.assertRaises(HTTPInvalidParam):
         api_scans.launch_v2(m_request, m_body)