mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-06 17:33:18 +00:00
update file api
1. return checked file name when creat a new file 2. update test
This commit is contained in:
@@ -154,7 +154,8 @@ class FileView(APIView):
|
|||||||
error_msg = 'Internal Server Error'
|
error_msg = 'Internal Server Error'
|
||||||
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
|
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
|
||||||
|
|
||||||
file_info = self.get_file_info(username, repo_id, path)
|
new_file_path = posixpath.join(parent_dir, new_file_name)
|
||||||
|
file_info = self.get_file_info(username, repo_id, new_file_path)
|
||||||
return Response(file_info)
|
return Response(file_info)
|
||||||
|
|
||||||
if operation == 'rename':
|
if operation == 'rename':
|
||||||
|
@@ -8,6 +8,7 @@ from seaserv import seafile_api
|
|||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
|
||||||
from seahub.test_utils import BaseTestCase
|
from seahub.test_utils import BaseTestCase
|
||||||
|
from seahub.utils import check_filename_with_rename
|
||||||
|
|
||||||
from tests.common.utils import randstring
|
from tests.common.utils import randstring
|
||||||
|
|
||||||
@@ -100,6 +101,22 @@ class DirViewTest(BaseTestCase):
|
|||||||
# check new folder has been created
|
# check new folder has been created
|
||||||
assert new_name == self.get_lib_folder_name(self.repo_id)
|
assert new_name == self.get_lib_folder_name(self.repo_id)
|
||||||
|
|
||||||
|
def test_can_create_same_name_folder(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
folder_name = os.path.basename(self.folder_path.rstrip('/'))
|
||||||
|
new_name = check_filename_with_rename(self.repo_id, '/', folder_name)
|
||||||
|
|
||||||
|
# create file
|
||||||
|
data = {'operation': 'mkdir',}
|
||||||
|
resp = self.client.post(self.url + '?p=' + self.folder_path, data)
|
||||||
|
json_resp = json.loads(resp.content)
|
||||||
|
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
|
# check new folder has been created
|
||||||
|
assert new_name == json_resp['obj_name']
|
||||||
|
|
||||||
def test_create_folder_with_invalid_repo_perm(self):
|
def test_create_folder_with_invalid_repo_perm(self):
|
||||||
|
|
||||||
# login as admin, then create dir in user's repo
|
# login as admin, then create dir in user's repo
|
||||||
@@ -156,6 +173,31 @@ class DirViewTest(BaseTestCase):
|
|||||||
# check old file has been renamed to new_name
|
# check old file has been renamed to new_name
|
||||||
assert new_name == self.get_lib_folder_name(self.repo_id)
|
assert new_name == self.get_lib_folder_name(self.repo_id)
|
||||||
|
|
||||||
|
def test_can_rename_folder_with_same_name(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
# check old folder exist
|
||||||
|
assert self.folder_name == self.get_lib_folder_name(self.repo_id)
|
||||||
|
|
||||||
|
# create a new folder
|
||||||
|
new_name = randstring(6)
|
||||||
|
data = {'operation': 'mkdir',}
|
||||||
|
resp = self.client.post(self.url + '?p=/' + new_name, data)
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
|
# rename new folder with the same name of old folder
|
||||||
|
old_folder_name = self.folder_name
|
||||||
|
checked_name = check_filename_with_rename(self.repo_id,
|
||||||
|
'/', old_folder_name)
|
||||||
|
data = {'operation': 'rename', 'newname': checked_name}
|
||||||
|
resp = self.client.post(self.url + '?p=/' + new_name, data)
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
|
# check old file has been renamed to new_name
|
||||||
|
json_resp = json.loads(resp.content)
|
||||||
|
print old_folder_name, new_name, checked_name
|
||||||
|
assert checked_name == json_resp['obj_name']
|
||||||
|
|
||||||
def test_rename_folder_with_invalid_repo_perm(self):
|
def test_rename_folder_with_invalid_repo_perm(self):
|
||||||
|
|
||||||
# login as admin, then rename dir in user's repo
|
# login as admin, then rename dir in user's repo
|
||||||
|
@@ -8,6 +8,7 @@ from seaserv import seafile_api
|
|||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
|
||||||
from seahub.test_utils import BaseTestCase
|
from seahub.test_utils import BaseTestCase
|
||||||
|
from seahub.utils import check_filename_with_rename
|
||||||
|
|
||||||
from tests.common.utils import randstring
|
from tests.common.utils import randstring
|
||||||
|
|
||||||
@@ -101,6 +102,21 @@ class FileViewTest(BaseTestCase):
|
|||||||
# check new file in repo
|
# check new file in repo
|
||||||
assert new_name == self.get_lib_file_name(self.repo_id)
|
assert new_name == self.get_lib_file_name(self.repo_id)
|
||||||
|
|
||||||
|
def test_can_create_same_name_file(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
file_name = os.path.basename(self.file_path.rstrip('/'))
|
||||||
|
new_name = check_filename_with_rename(self.repo_id, '/', file_name)
|
||||||
|
data = {'operation': 'create',}
|
||||||
|
|
||||||
|
# create file
|
||||||
|
resp = self.client.post(self.url + '?p=' + self.file_path, data)
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
json_resp = json.loads(resp.content)
|
||||||
|
|
||||||
|
# check new folder has been created
|
||||||
|
assert new_name == json_resp['obj_name']
|
||||||
|
|
||||||
def test_create_file_with_invalid_repo_perm(self):
|
def test_create_file_with_invalid_repo_perm(self):
|
||||||
|
|
||||||
# login as admin, then create file in user's repo
|
# login as admin, then create file in user's repo
|
||||||
@@ -154,6 +170,29 @@ class FileViewTest(BaseTestCase):
|
|||||||
# check old file has been renamed to new_name
|
# check old file has been renamed to new_name
|
||||||
assert new_name == self.get_lib_file_name(self.repo_id)
|
assert new_name == self.get_lib_file_name(self.repo_id)
|
||||||
|
|
||||||
|
def test_can_rename_file_with_same_name(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
# check old file exist
|
||||||
|
assert self.file_name == self.get_lib_file_name(self.repo_id)
|
||||||
|
|
||||||
|
# create a new file
|
||||||
|
new_name = randstring(6)
|
||||||
|
data = {'operation': 'create',}
|
||||||
|
resp = self.client.post(self.url + '?p=/' + new_name, data)
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
|
# rename new file with the same of the old file
|
||||||
|
old_file_name = self.file_name
|
||||||
|
checked_name = check_filename_with_rename(self.repo_id,
|
||||||
|
'/', old_file_name)
|
||||||
|
data = {'operation': 'rename', 'newname': checked_name}
|
||||||
|
resp = self.client.post(self.url + '?p=/' + new_name, data)
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
|
json_resp = json.loads(resp.content)
|
||||||
|
assert checked_name == json_resp['obj_name']
|
||||||
|
|
||||||
def test_rename_file_with_invalid_repo_perm(self):
|
def test_rename_file_with_invalid_repo_perm(self):
|
||||||
|
|
||||||
# login as admin, then rename file in user's repo
|
# login as admin, then rename file in user's repo
|
||||||
|
Reference in New Issue
Block a user