1
0
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:
zhengxie
2015-07-07 15:30:53 +08:00
parent 7a1b16443e
commit 45c16e9a93
3 changed files with 86 additions and 1 deletions

View File

@@ -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.')

View File

@@ -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'}
)

View 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()))