1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-06-29 08:27:55 +00:00
seahub/tests/api/endpoints/test_share_link_zip_task.py

94 lines
3.1 KiB
Python
Raw Normal View History

2016-07-04 07:31:55 +00:00
# -*- coding: utf-8 -*-
import json
from mock import patch
from django.core.urlresolvers import reverse
from seahub.test_utils import BaseTestCase
from seahub.share.models import FileShare
class ShareLinkZipTaskViewTest(BaseTestCase):
def _add_dir_share_link(self):
fs = FileShare.objects.create_dir_link(self.user.username,
self.repo.id, self.folder, None, None)
return fs.token
def setUp(self):
self.url = reverse('api-v2.1-share-link-zip-task')
def tearDown(self):
self.remove_repo()
def test_can_get_share_link_zip_task(self):
share_link_token = self._add_dir_share_link()
url = self.url + '?share_link_token=%s&path=/' % share_link_token
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp['zip_token']) == 36
@patch('seahub.api2.endpoints.share_link_zip_task.settings.ENABLE_SHARE_LINK_AUDIT')
@patch('seahub.api2.endpoints.share_link_zip_task.is_pro_version')
def test_get_zip_token_with_unauthenticated_user(self,
mock_is_pro_version, mock_enable_share_link_audit):
mock_is_pro_version.return_value = True
mock_enable_share_link_audit = True
share_link_token = self._add_dir_share_link()
url = self.url + '?share_link_token=%s&path=/' % share_link_token
# user neither login in nor passed code check
resp = self.client.get(url)
self.assertEqual(403, resp.status_code)
@patch('seahub.api2.endpoints.share_link_zip_task.settings.ENABLE_SHARE_LINK_AUDIT')
@patch('seahub.api2.endpoints.share_link_zip_task.is_pro_version')
def test_get_zip_token_with_authenticated_user(self,
mock_is_pro_version, mock_enable_share_link_audit):
mock_is_pro_version.return_value = True
mock_enable_share_link_audit = True
share_link_token = self._add_dir_share_link()
# user login in
self.login_as(self.admin)
url = self.url + '?share_link_token=%s&path=/' % share_link_token
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp['zip_token']) == 36
@patch('seahub.api2.endpoints.share_link_zip_task.settings.ENABLE_SHARE_LINK_AUDIT')
@patch('seahub.api2.endpoints.share_link_zip_task.is_pro_version')
def test_get_zip_token_with_anonymous_user_passed_code_check(self,
mock_is_pro_version, mock_enable_share_link_audit):
mock_is_pro_version.return_value = True
mock_enable_share_link_audit = True
share_link_token = self._add_dir_share_link()
url = self.url + '?share_link_token=%s&path=/' % share_link_token
# user pass code check
session = self.client.session
session['anonymous_email'] = 'anonymous@email.com'
session.save()
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp['zip_token']) == 36