mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-19 01:44:13 +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 exam.decorators import fixture
|
||||
@@ -63,3 +64,7 @@ class Fixtures(Exam):
|
||||
def create_folder(self, **kwargs):
|
||||
seafile_api.post_dir(**kwargs)
|
||||
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)
|
||||
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):
|
||||
def setUp(self):
|
||||
|
Reference in New Issue
Block a user