mirror of
https://github.com/haiwen/seahub.git
synced 2025-10-19 18:00:03 +00:00
star folder (#2955)
This commit is contained in:
104
tests/api/endpoints/test_starred_items.py
Normal file
104
tests/api/endpoints/test_starred_items.py
Normal file
@@ -0,0 +1,104 @@
|
||||
import json
|
||||
|
||||
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from seahub.base.models import UserStarredFiles
|
||||
from seahub.utils.star import is_file_starred
|
||||
from seahub.utils import normalize_dir_path
|
||||
from seahub.test_utils import BaseTestCase
|
||||
|
||||
class StarredItemsTest(BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
all_starred_items = UserStarredFiles.objects.all()
|
||||
all_starred_items.delete()
|
||||
|
||||
self.repo_id = self.repo.id
|
||||
self.user_name = self.user.username
|
||||
self.folder_path = normalize_dir_path(self.folder)
|
||||
self.url = reverse('api-v2.1-starred-items')
|
||||
|
||||
def tearDown(self):
|
||||
self.remove_repo()
|
||||
self.remove_group()
|
||||
|
||||
def test_can_get(self):
|
||||
self.login_as(self.user)
|
||||
|
||||
# star a file
|
||||
data = {'repo_id': self.repo_id, 'path': self.file}
|
||||
resp = self.client.post(self.url, data)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
# star a folder
|
||||
data = {'repo_id': self.repo_id, 'path': self.folder_path}
|
||||
resp = self.client.post(self.url, data)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
# get all starred items
|
||||
resp = self.client.get(self.url)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
json_resp = json.loads(resp.content)
|
||||
|
||||
assert len(json_resp['starred_item_list']) == 2
|
||||
|
||||
def test_can_star_file(self):
|
||||
self.login_as(self.user)
|
||||
data = {
|
||||
'repo_id': self.repo_id,
|
||||
'path': self.file,
|
||||
}
|
||||
|
||||
resp = self.client.post(self.url, data)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
assert is_file_starred(self.user_name, self.repo_id, self.file) is True
|
||||
|
||||
def test_can_star_folder(self):
|
||||
self.login_as(self.user)
|
||||
data = {
|
||||
'repo_id': self.repo_id,
|
||||
'path': self.folder_path,
|
||||
}
|
||||
|
||||
resp = self.client.post(self.url, data)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
assert is_file_starred(self.user_name, self.repo_id, self.folder_path) is True
|
||||
|
||||
def test_can_unstar_file(self):
|
||||
self.login_as(self.user)
|
||||
|
||||
# first star a file
|
||||
data = {'repo_id': self.repo_id, 'path': self.file}
|
||||
resp = self.client.post(self.url, data)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
# confirm file is starred
|
||||
assert is_file_starred(self.user_name, self.repo_id, self.file) is True
|
||||
|
||||
# then unstar a file
|
||||
resp = self.client.delete(self.url + '?repo_id=%s&path=%s' % (self.repo_id, self.file))
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
# confirm file is unstarred
|
||||
assert is_file_starred(self.user_name, self.repo_id, self.file) is False
|
||||
|
||||
def test_can_unstar_folder(self):
|
||||
self.login_as(self.user)
|
||||
|
||||
# first star a folder
|
||||
data = {'repo_id': self.repo_id, 'path': self.folder_path}
|
||||
resp = self.client.post(self.url, data)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
# confirm folder is starred
|
||||
assert is_file_starred(self.user_name, self.repo_id, self.folder_path) is True
|
||||
|
||||
# then unstar a folder
|
||||
resp = self.client.delete(self.url + '?repo_id=%s&path=%s' % (self.repo_id, self.folder_path))
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
# confirm folder is unstarred
|
||||
assert is_file_starred(self.user_name, self.repo_id, self.folder_path) is False
|
Reference in New Issue
Block a user