Пример #1
0
    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")
Пример #2
0
    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
Пример #3
0
 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)
Пример #4
0
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
Пример #5
0
    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
Пример #6
0
    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)
Пример #7
0
    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
Пример #8
0
Файл: tests.py Проект: gapb/OTM2
    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
Пример #9
0
 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)
Пример #10
0
    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)
Пример #11
0
    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)
Пример #12
0
	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)
Пример #13
0
    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)
Пример #14
0
 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)