mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-19 18:29:23 +00:00
Add test cases for issue 1283, https://github.com/haiwen/seafile/issues/1283
This commit is contained in:
@@ -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)
|
||||||
|
64
tests/seahub/share/views/test_shared_links.py
Normal file
64
tests/seahub/share/views/test_shared_links.py
Normal 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)
|
@@ -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):
|
||||||
|
Reference in New Issue
Block a user