Ejemplo n.º 1
0
def test_xlsx_local_file_upload():
  if sys.version_info[0] < 3:
    raise SkipTest

  csv_file = '''test 1,test.2,test_3,test_4
2010-10-10 00:00:00,2012-10-11 01:00:00,30,
2021-10-10 00:00:00,2012-10-11 03:00:00,0.12,
2010-10-10 00:00:00,2012-10-11 09:00:00,0.99,
2010-10-10 00:00:00,2012-10-11 04:00:00,500,
2010-10-10 00:00:00,2012-10-11 09:00:00,29830,
2010-10-10 00:00:00,2012-10-11 08:00:00,50,
2010-10-10 00:00:00,2012-10-11 07:00:00,,
2010-10-10 00:00:00,2012-10-11 03:00:00,,
2010-10-10 00:00:00,2012-10-11 09:00:00,,
2010-10-10 00:00:00,2022-10-10 14:00:00,,
2010-10-10 00:00:00,2021-10-10 15:00:00,,
2010-10-10 00:00:00,,,
2010-10-10 00:00:00,,,
2010-10-10 00:00:00,scattered,,
2010-10-10 00:00:00,,scattered,
2010-10-10 00:00:00,,,
,,,
,,,
scattered,,,
,,scattered,
,,,
,,,
,scattered,,
,,,
,,,
,,,
scattered,,,scattered
,,,
,,,
,,,
,,,
,scattered,,
'''
  with open(BASE_DIR + '/apps/beeswax/data/tables/book.xlsx', 'rb') as file:
    uploaded_file = InMemoryUploadedFile(file=file, field_name='test', name='book(1).xlsx', content_type='xlsx', size=100, charset='utf-8')
    request = Mock()
    request.user = Mock()
    request.FILES = MultiValueDict({'file': [uploaded_file]})

    response = upload_local_file(request)

  path = urllib_unquote(json.loads(response.content.decode('utf-8'))['local_file_url'])
  with open(path, 'r') as _test_file:
    test_file = _test_file.read().replace('\r\n', '\n')

    assert_equal(csv_file, test_file)
    assert_true("book_1_xlsx" in path)
Ejemplo n.º 2
0
 def test_post_upload_succeed(self, uuid_uuid1):
     found = resolve('/image/upload/', urlconf=adminpage.urls)
     request = Mock(wraps=HttpRequest(), method='POST')
     file = MultiValueDict()
     file['image'] = InMemoryUploadedFile(None, None, "1", 'image/jpg', None, 'utf-8')
     file['image'].chunks = Mock(return_value=[b"1"])
     request.FILES = file
     request.body = Mock()
     request.body.decode = Mock(return_value='{}')
     request.user = Mock()
     request.user.is_authenticated = Mock(return_value=True)
     uuid.uuid1.return_value = 1
     response = json.loads(found.func(request).content.decode())
     self.assertEqual(response['code'], 0)
Ejemplo n.º 3
0
    def _build_request(
        self, method: str, path: str, data: Dict, request_params: Any
    ) -> Mock:
        request = Mock()
        request.method = method
        request.path = path
        request.body = ""
        request.COOKIES = {}
        request._dont_enforce_csrf_checks = True
        request.is_secure.return_value = False
        request.build_absolute_uri = build_absolute_uri

        if "user" not in request_params:
            request.user.is_authenticated = False

        request.META = request_params.pop("META", {})
        request.FILES = request_params.pop("FILES", {})

        request.META.update(
            dict(
                [
                    (f"HTTP_{k.replace('-', '_')}", v)
                    for k, v in request_params.pop("headers", {}).items()
                ]
            )
        )
        if django.VERSION[:2] > (2, 1):
            from django.http.request import HttpHeaders

            request.headers = HttpHeaders(request.META)

        if isinstance(data, QueryDict):
            request.POST = data
        else:
            request.POST = QueryDict(mutable=True)
            for k, v in data.items():
                request.POST[k] = v

        if "?" in path:
            request.GET = QueryDict(path.split("?")[1])
        else:
            request.GET = QueryDict()

        for k, v in request_params.items():
            setattr(request, k, v)
        return request