mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-13 13:50:07 +00:00
[api2] Add tests and remove unused code
This commit is contained in:
@@ -1582,7 +1582,7 @@ class StarredFileView(APIView):
|
|||||||
def delete(self, request, format=None):
|
def delete(self, request, format=None):
|
||||||
# remove starred file
|
# remove starred file
|
||||||
repo_id = request.GET.get('repo_id', '')
|
repo_id = request.GET.get('repo_id', '')
|
||||||
path = unquote(request.GET.get('p', '').encode('utf-8'))
|
path = request.GET.get('p', '')
|
||||||
if not (repo_id and path):
|
if not (repo_id and path):
|
||||||
return api_error(status.HTTP_400_BAD_REQUEST,
|
return api_error(status.HTTP_400_BAD_REQUEST,
|
||||||
'Repo_id or path is missing.')
|
'Repo_id or path is missing.')
|
||||||
|
@@ -1,12 +1,15 @@
|
|||||||
import os
|
import os
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
|
from django.test import TestCase
|
||||||
from exam.decorators import fixture
|
from exam.decorators import fixture
|
||||||
from exam.cases import Exam
|
from exam.cases import Exam
|
||||||
from seaserv import seafile_api, ccnet_threaded_rpc
|
from seaserv import seafile_api, ccnet_threaded_rpc
|
||||||
|
|
||||||
from seahub.base.accounts import User
|
from seahub.base.accounts import User
|
||||||
|
|
||||||
|
|
||||||
class Fixtures(Exam):
|
class Fixtures(Exam):
|
||||||
|
|
||||||
@fixture
|
@fixture
|
||||||
@@ -82,3 +85,11 @@ class Fixtures(Exam):
|
|||||||
|
|
||||||
def remove_group(self):
|
def remove_group(self):
|
||||||
return ccnet_threaded_rpc.remove_group(self.group.id, self.user.username)
|
return ccnet_threaded_rpc.remove_group(self.group.id, self.user.username)
|
||||||
|
|
||||||
|
|
||||||
|
class BaseTestCase(TestCase, Fixtures):
|
||||||
|
def login_as(self, user):
|
||||||
|
self.client.post(
|
||||||
|
reverse('auth_login'), {'username': user.username,
|
||||||
|
'password': 'secret'}
|
||||||
|
)
|
||||||
|
74
tests/api/test_starredfiles.py
Normal file
74
tests/api/test_starredfiles.py
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import json
|
||||||
|
import urllib2
|
||||||
|
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
|
|
||||||
|
from seahub.base.models import UserStarredFiles
|
||||||
|
from seahub.test_utils import BaseTestCase, Fixtures
|
||||||
|
|
||||||
|
|
||||||
|
class StarredFileTest(BaseTestCase, Fixtures):
|
||||||
|
def setUp(self):
|
||||||
|
UserStarredFiles(email=self.user.username, org_id=-1,
|
||||||
|
repo_id=self.repo.id, path=self.file,
|
||||||
|
is_dir=False).save()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
self.remove_repo()
|
||||||
|
|
||||||
|
def js_encodeURIComponent(self, string):
|
||||||
|
return urllib2.quote(string.encode('utf-8'), safe='~()*!.\'')
|
||||||
|
|
||||||
|
def test_can_list(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
resp = self.client.get(reverse('starredfiles'))
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
json_resp = json.loads(resp.content)
|
||||||
|
self.assertEqual(1, len(json_resp))
|
||||||
|
|
||||||
|
def test_can_add(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
resp = self.client.post(reverse('starredfiles'), {
|
||||||
|
'repo_id': self.repo.id,
|
||||||
|
'p': self.file
|
||||||
|
})
|
||||||
|
self.assertEqual(201, resp.status_code)
|
||||||
|
self.assertEqual('"success"', resp.content)
|
||||||
|
|
||||||
|
def test_can_delete(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
resp = self.client.delete(reverse('starredfiles') + '?repo_id=' +
|
||||||
|
self.repo.id + '&p=' + self.file)
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
self.assertEqual(0, len(UserStarredFiles.objects.all()))
|
||||||
|
|
||||||
|
def test_can_add_unicode(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
resp = self.client.post(reverse('starredfiles'), {
|
||||||
|
'repo_id': self.repo.id,
|
||||||
|
'p': self.js_encodeURIComponent(u'März_中文_%2F_FG2_SW#1a.jpg'),
|
||||||
|
})
|
||||||
|
self.assertEqual(201, resp.status_code)
|
||||||
|
self.assertEqual('"success"', resp.content)
|
||||||
|
self.assertEqual(2, len(UserStarredFiles.objects.all()))
|
||||||
|
|
||||||
|
def test_can_delete_unicode(self):
|
||||||
|
self.login_as(self.user)
|
||||||
|
|
||||||
|
resp = self.client.post(reverse('starredfiles'), {
|
||||||
|
'repo_id': self.repo.id,
|
||||||
|
'p': self.js_encodeURIComponent(u'März_中文_%2F_FG2_SW#1a.jpg')
|
||||||
|
})
|
||||||
|
self.assertEqual(201, resp.status_code)
|
||||||
|
self.assertEqual(2, len(UserStarredFiles.objects.all()))
|
||||||
|
|
||||||
|
resp = self.client.delete(reverse('starredfiles') + '?repo_id=' +
|
||||||
|
self.repo.id + '&p=' +
|
||||||
|
self.js_encodeURIComponent(u'März_中文_%2F_FG2_SW#1a.jpg'))
|
||||||
|
self.assertEqual(200, resp.status_code)
|
||||||
|
self.assertEqual(1, len(UserStarredFiles.objects.all()))
|
Reference in New Issue
Block a user