1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-06-30 17:02:15 +00:00
seahub/tests/api/endpoints/test_zip_task.py

110 lines
3.1 KiB
Python
Raw Normal View History

2016-07-04 07:31:55 +00:00
# -*- coding: utf-8 -*-
import os
import json
from django.core.urlresolvers import reverse
from seahub.test_utils import BaseTestCase
from seaserv import seafile_api
try:
from seahub.settings import LOCAL_PRO_DEV_ENV
except ImportError:
LOCAL_PRO_DEV_ENV = False
class ZipTaskViewTest(BaseTestCase):
def setUp(self):
self.repo_id = self.repo.id
self.folder_path = self.folder
self.folder_name = os.path.basename(self.folder_path)
self.url = reverse('api-v2.1-zip-task', args=[self.repo_id])
def tearDown(self):
self.remove_repo()
def test_can_get_download_dir_zip_token(self):
self.login_as(self.user)
parent_dir = '/'
folder_name = self.folder_name
url = self.url + '?parent_dir=%s&dirents=%s' % (parent_dir, folder_name)
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp['zip_token']) == 36
def test_can_get_download_multi_zip_token(self):
# create another folder for download multi
another_folder_name = 'another_folder_name'
seafile_api.post_dir(repo_id=self.repo.id,
parent_dir='/', dirname=another_folder_name,
username=self.user.username)
self.login_as(self.user)
parent_dir = '/'
folder_name = self.folder_name
url = self.url + '?parent_dir=%s&dirents=%s&dirents=%s' % (parent_dir,
folder_name, another_folder_name)
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp['zip_token']) == 36
def test_can_get_zip_token_with_invalid_repo_permission(self):
self.login_as(self.admin)
parent_dir = '/'
folder_name = self.folder_name
url = self.url + '?parent_dir=%s&dirents=%s' % (parent_dir, folder_name)
resp = self.client.get(url)
self.assertEqual(403, resp.status_code)
def test_can_get_zip_token_for_r_permission_folder(self):
if not LOCAL_PRO_DEV_ENV:
return
self.set_user_folder_r_permission_to_admin()
self.login_as(self.admin)
parent_dir = '/'
folder_name = self.folder_name
url = self.url + '?parent_dir=%s&dirents=%s' % (parent_dir, folder_name)
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp['zip_token']) == 36
def test_can_get_zip_token_for_rw_permission_folder(self):
if not LOCAL_PRO_DEV_ENV:
return
self.set_user_folder_rw_permission_to_admin()
self.login_as(self.admin)
parent_dir = '/'
folder_name = self.folder_name
url = self.url + '?parent_dir=%s&dirents=%s' % (parent_dir, folder_name)
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp['zip_token']) == 36