def test_file_upload(self, test_client, session, csrf_token, logged_user): ws = WorkspaceFactory.create(name="abc") session.add(ws) session.commit() path = TEST_DATA_PATH / 'nmap_plugin_with_api.xml' with path.open('rb') as report: file_contents = report.read() data = { 'file': (BytesIO(file_contents), 'nmap_report.xml'), 'csrf_token': csrf_token } res = test_client.post( self.check_url(f'/v2/ws/{ws.name}/upload_report'), data=data, use_json_data=False) assert res.status_code == 200 assert len(REPORTS_QUEUE.queue) == 1 queue_elem = REPORTS_QUEUE.get_nowait() assert queue_elem[0] == ws.name assert queue_elem[3].lower() == "nmap" assert queue_elem[4] == logged_user.id # I'm testing a method which lost referene of workspace and logged_user within the test ws_id = ws.id logged_user_id = logged_user.id from faraday.server.threads.reports_processor import ReportsManager false_thread = ReportsManager(None) false_thread.process_report(queue_elem[0], queue_elem[1], queue_elem[2], queue_elem[3], queue_elem[4]) command = Command.query.filter(Command.workspace_id == ws_id).one() assert command assert command.creator_id == logged_user_id assert command.id == res.json["command_id"] assert command.end_date host = Host.query.filter(Host.workspace_id == ws_id).first() assert host assert host.creator_id == logged_user_id service = Service.query.filter(Service.workspace_id == ws_id).first() assert service assert service.creator_id == logged_user_id
def test_file_upload(self, test_client, session, csrf_token, logged_user): ws = WorkspaceFactory.create(name="abc") session.add(ws) session.commit() path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'data', 'nmap_plugin_with_api.xml') with open(path, 'rb') as report: file_contents = report.read() data = { 'file': (BytesIO(file_contents), 'nmap_report.xml'), 'csrf_token': csrf_token } res = test_client.post( '/v2/ws/{ws_name}/upload_report'.format(ws_name=ws.name), data=data, use_json_data=False) assert res.status_code == 200 assert len(REPORTS_QUEUE.queue) == 1 queue_elem = REPORTS_QUEUE.queue[0] assert queue_elem[0] == ws.name assert queue_elem[2].id == logged_user.id # I'm testing a method which lost referene of workspace and logged_user within the test ws_id = ws.id logged_user_id = logged_user.id from faraday.server.threads.reports_processor import ReportsManager false_thread = ReportsManager(None) false_thread.process_report(queue_elem[0], queue_elem[1], queue_elem[2]) command = Command.query.filter(Command.workspace_id == ws_id).one() assert command assert command.creator_id == logged_user_id host = Host.query.filter(Host.workspace_id == ws_id).first() assert host assert host.creator_id == logged_user_id service = Service.query.filter(Service.workspace_id == ws_id).first() assert service assert service.creator_id == logged_user_id