def testFileUpload(self): from django.http import QueryDict, HttpRequest from tardis.tardis_portal.views import upload from django.core.files import File from django.core.files.uploadedfile import UploadedFile from django.utils.datastructures import MultiValueDict from os import path # create request.FILES object django_file = File(self.f1) uploaded_file = UploadedFile(file=django_file) uploaded_file.name = self.filename uploaded_file.size = self.f1_size post_data = [("enctype", "multipart/form-data")] post = QueryDict("&".join(["%s=%s" % (k, v) for (k, v) in post_data])) files = MultiValueDict({"Filedata": [uploaded_file]}) request = HttpRequest() request.FILES = files request.POST = post request.method = "POST" response = upload(request, self.dataset.id) test_files_db = models.Dataset_File.objects.filter(dataset__id=self.dataset.id) self.assertTrue(path.exists(path.join(self.dataset_path, self.filename))) self.assertTrue(self.dataset.id == 1) self.assertTrue(test_files_db[0].url == "tardis://testfile.txt")
def get_context_value(self, user=AnonymousUser(), files=None, session=None) -> HttpRequest: """ :type user: User | AnonymousUser :param files: {key => name of file from settings.TEST_FILES_FOLDER folder)} e.g. {'image': 'picture.png'} :type files: dict | None :param session: {key => value, } e.g. {'image': 'picture.png'} :type session: dict | None """ if files is None: files = {} if session is None: session = {} context = HttpRequest() context.user = user context.FILES = {} context.session = import_module( settings.SESSION_ENGINE).SessionStore(None) context.session.update(session) test_files_folder = settings.PROJECT_ROOT + '/' + settings.TEST_FILES_FOLDER + '/' for key, file in files.items(): file = open(test_files_folder + file, 'rb') context.FILES.update( {key: SimpleUploadedFile(file.name, file.read())}) return context
def test_uploadCSVToProcess(self): request = HttpRequest() request.method = 'POST' request.POST = "test" request.FILES = {'name':File(open('tests/data/GSM999999999.TXT','rb'))} request.upload_handlers views.uploadCSVToProcess(request)
def request_for_upload(user, filename, b64content): """ Return a request object containing all fields necessary for file upload as if it was sent by the browser. """ request = HttpRequest() request.user = user request.method = "POST" request.content_type = "multipart/form-data" # because attachment.views.add_attachment() calls messages.success() request._messages = MagicMock() # pylint: disable=protected-access data, boundary = encode_multipart(get_token(request), filename, b64content) request.META[ "CONTENT_TYPE"] = "multipart/form-data; boundary=%s" % boundary request.META["CONTENT_LENGTH"] = len(data) request._stream = io.BytesIO(data.encode()) # pylint: disable=protected-access # manually parse the input data and populate data attributes request._read_started = False # pylint: disable=protected-access request._load_post_and_files() # pylint: disable=protected-access request.POST = request._post # pylint: disable=protected-access request.FILES = request._files # pylint: disable=protected-access return request
def create_csv_request(self, stuff, **kwargs): rows = [[z.strip() for z in a.split("|")[1:-1]] for a in stuff.split("\n") if len(a.strip()) > 0] req = HttpRequest() req.user = self.user login(self.client, self.user.username) req.FILES = {"filename": self.create_csv_stream(rows)} req.REQUEST = kwargs return req
def test_from_multipart_form(self): request = HttpRequest() request.META = {"CONTENT_TYPE": "multipart/form-data"} request.POST = {"age": 27, "name": "Daniel"} # Not valid files, testing purposes only request.FILES = {"date_joined": "2010-03-27"} data = self.resource.deserialize(request, None) merged = request.POST.copy() merged.update(request.FILES) self.assertEqual(data, merged)
def create_csv_request(self, stuff, **kwargs): rows = [[z.strip() for z in a.split('|')[1:-1]] for a in stuff.split('\n') if len(a.strip()) > 0] req = HttpRequest() req.user = self.user self.login(req, username="******", password="******") req.FILES = {'filename': self.create_csv_stream(rows)} req.REQUEST = kwargs return req
def create_csv_request(self, stuff, **kwargs): rows = [[z.strip() for z in a.split('|')[1:-1]] for a in stuff.split('\n') if len(a.strip()) > 0] req = HttpRequest() req.user = self.user login(self.client, self.user.username) req.FILES = {'filename': self.create_csv_stream(rows)} req.REQUEST = kwargs return req
def test_from_multipart_form(self): request = HttpRequest() request.META = { "CONTENT_TYPE": "multipart/form-data" } request.POST = {"age": 27, "name": "Daniel"} # Not valid files, testing purposes only request.FILES = {"date_joined": "2010-03-27"} data = self.resource.deserialize(request, None) merged = request.POST.copy() merged.update(request.FILES) self.assertEqual(data, merged)
def test_formset_is_initialized_with_POST_data_and_files( self, mock_formset_cls ): request = HttpRequest() request.user = self.user request.method = 'POST' request.POST = self.post_data request.FILES = self.post_files response = audit_page(request, self.audit.pk) mock_formset_cls.assert_called_once_with(self.post_data, self.post_files)
def test_erm_multiformview(self): mfv = ERMMultiFormView() request = HttpRequest() request.method = 'POST' request.FILES = {} mfv.set_request(request) forms_classes = mfv.get_forms_classes() self.assertEqual(forms_classes['enta'], EntityAModelForm) self.assertEqual(forms_classes['entb'], EntityBModelForm) forms = mfv.get_forms(forms_classes) entaform = forms['enta'] self.assertEqual(entaform.is_valid(), False) request.POST = {'text': 'aaa', 'integer': 2} mfv.set_request(request) forms = mfv.get_forms(forms_classes) self.assertEqual(forms['enta'].is_valid(), True) self.assertEqual(forms['entr'].is_valid(), False)
def test_erm_multiformview(self): mfv = ERMMultiFormView() request = HttpRequest() request.method = 'POST' request.FILES = {} mfv.set_request(request) forms_classes = mfv.get_forms_classes() self.assertEqual(forms_classes['enta'],EntityAModelForm) self.assertEqual(forms_classes['entb'],EntityBModelForm) forms = mfv.get_forms(forms_classes) entaform = forms['enta'] self.assertEqual(entaform.is_valid(), False) request.POST = {'text':'aaa','integer':2} mfv.set_request(request) forms = mfv.get_forms(forms_classes) self.assertEqual(forms['enta'].is_valid(), True) self.assertEqual(forms['entr'].is_valid(), False)
def test_request(self): request = HttpRequest() request.META = { 'REMOTE_ADDR': '127.0.0.1' } request.FILES = { 'upload.txt': ContentFile('Content File', name='upload.txt') } s = hubs.put(request) data = { 'name': 'upload.txt', 'description': None, 'size': 12, 'content_type': 'text/plain', 'content_encoding': None, 'stream': False, 'source': '127.0.0.1' } self.assertEqual(pick(s, data.keys()), data)
def get_form(self, filename, content_type): request = HttpRequest() request.POST = QueryDict('gallery=1') request.FILES = { u'zip_file': SimpleUploadedFile(filename, 'content', content_type) } return ZipFileForm(request.POST, request.FILES)