1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-19 10:26:17 +00:00
This commit is contained in:
zhengxie
2015-06-25 13:25:09 +08:00
parent 392dd625be
commit f33d756308
3 changed files with 94 additions and 0 deletions

View File

@@ -1,3 +1,4 @@
import os
from uuid import uuid4 from uuid import uuid4
from exam.decorators import fixture from exam.decorators import fixture
@@ -63,3 +64,7 @@ class Fixtures(Exam):
def create_folder(self, **kwargs): def create_folder(self, **kwargs):
seafile_api.post_dir(**kwargs) seafile_api.post_dir(**kwargs)
return kwargs['parent_dir'] + kwargs['dirname'] return kwargs['parent_dir'] + kwargs['dirname']
def remove_folder(self):
seafile_api.del_file(self.repo.id, os.path.dirname(self.folder),
os.path.basename(self.folder), self.user.username)

View File

@@ -0,0 +1,64 @@
# -*- coding: utf-8 -*-
import os
from django.test import TestCase
from django.core.urlresolvers import reverse
import requests
from seahub.share.models import FileShare
from seahub.test_utils import Fixtures
class ListSharedLinksTest(TestCase, Fixtures):
def setUp(self):
share_file_info = {
'username': 'test@test.com',
'repo_id': self.repo.id,
'path': self.file,
'password': None,
'expire_date': None,
}
self.fs = FileShare.objects.create_file_link(**share_file_info)
def tearDown(self):
self.remove_repo()
def login(self):
self.client.post(
reverse('auth_login'), {'username': self.user.username,
'password': 'secret'}
)
def test_can_render(self):
self.login()
resp = self.client.get(reverse('list_shared_links'))
self.assertEqual(200, resp.status_code)
self.assertTemplateUsed(resp, 'share/links.html')
def test_can_render_when_parent_dir_of_link_is_removed(self):
"""Issue https://github.com/haiwen/seafile/issues/1283
"""
# create a file in a folder
self.create_file(repo_id=self.repo.id,
parent_dir=self.folder,
filename='file.txt',
username=self.user.username)
# share that file
share_file_info = {
'username': self.user.username,
'repo_id': self.repo.id,
'path': os.path.join(self.folder, 'file.txt'),
'password': None,
'expire_date': None,
}
fs = FileShare.objects.create_file_link(**share_file_info)
self.login()
resp = self.client.get(reverse('list_shared_links'))
self.assertEqual(200, resp.status_code)
# then delete parent folder, see whether it raises error
self.remove_folder()
resp = self.client.get(reverse('list_shared_links'))
self.assertEqual(200, resp.status_code)

View File

@@ -57,6 +57,31 @@ class SharedFileTest(TestCase, Fixtures):
self.assertEqual(302, resp.status_code) self.assertEqual(302, resp.status_code)
assert '8082/files/' in resp.get('location') assert '8082/files/' in resp.get('location')
def test_can_render_when_remove_parent_dir(self):
"""Issue https://github.com/haiwen/seafile/issues/1283
"""
# create a file in a folder
self.create_file(repo_id=self.repo.id,
parent_dir=self.folder,
filename='file.txt',
username=self.user.username)
# share that file
share_file_info = {
'username': self.user.username,
'repo_id': self.repo.id,
'path': os.path.join(self.folder, 'file.txt'),
'password': None,
'expire_date': None,
}
fs = FileShare.objects.create_file_link(**share_file_info)
resp = self.client.get(reverse('view_shared_file', args=[fs.token]))
self.assertEqual(200, resp.status_code)
# then delete parent folder, see whether it raises error
self.remove_folder()
resp = self.client.get(reverse('view_shared_file', args=[fs.token]))
self.assertEqual(200, resp.status_code)
class FileViaSharedDirTest(TestCase, Fixtures): class FileViaSharedDirTest(TestCase, Fixtures):
def setUp(self): def setUp(self):