1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-05-12 01:45:04 +00:00

move seahub-extra import inside api ()

* move seahub-extra import inside api

* fix repos api, delete CCNET_SERVER_PORT

* fix test cases
This commit is contained in:
Leo 2019-11-05 16:54:58 +08:00 committed by Daniel Pan
parent 8f861c003b
commit d95da0bff1
11 changed files with 15 additions and 106 deletions
seahub
api2
endpoints/admin
views.py
utils
tests

View File

@ -14,8 +14,6 @@ from seahub.api2.throttling import UserRateThrottle
from seahub.api2.permissions import IsProVersion
from seahub.api2.utils import api_error
from seahub_extra.sysadmin_extra.models import UserLoginLog
from seahub.base.templatetags.seahub_tags import email2nickname, email2contact_email
from seahub.utils import get_file_audit_events, generate_file_audit_event_type, \
get_file_update_events, get_perm_audit_events, is_valid_email
@ -48,6 +46,7 @@ class AdminLogsLoginLogs(APIView):
start = (current_page - 1) * per_page
end = start + per_page
from seahub_extra.sysadmin_extra.models import UserLoginLog
logs = UserLoginLog.objects.all().order_by('-login_date')[start:end]
count = UserLoginLog.objects.all().count()

View File

@ -65,7 +65,7 @@ from seahub.signals import (repo_created, repo_deleted, repo_transfer)
from seahub.share.models import FileShare, OrgFileShare, UploadLinkShare
from seahub.utils import gen_file_get_url, gen_token, gen_file_upload_url, \
check_filename_with_rename, is_valid_username, EVENTS_ENABLED, \
get_user_events, EMPTY_SHA1, get_ccnet_server_addr_port, is_pro_version, \
get_user_events, EMPTY_SHA1, is_pro_version, \
gen_block_get_url, get_file_type_and_ext, HAS_FILE_SEARCH, \
gen_file_share_link, gen_dir_share_link, is_org_context, gen_shared_link, \
get_org_user_events, calculate_repos_last_modify, send_perm_audit_msg, \
@ -608,8 +608,6 @@ def repo_download_info(request, repo_id, gen_sync_token=True):
return api_error(status.HTTP_404_NOT_FOUND, 'Library not found.')
# generate download url for client
relay_id = 0
addr, port = get_ccnet_server_addr_port()
email = request.user.username
if gen_sync_token:
token = seafile_api.generate_repo_token(repo_id, email)
@ -629,8 +627,8 @@ def repo_download_info(request, repo_id, gen_sync_token=True):
info_json = {
'relay_id': '44e8f253849ad910dc142247227c8ece8ec0f971',
'relay_addr': addr,
'relay_port': port,
'relay_addr': '127.0.0.1',
'relay_port': '80',
'email': email,
'token': token,
'repo_id': repo_id,

View File

@ -526,10 +526,6 @@ def gen_dir_zip_download_url(token):
"""
return '%s/zip/%s' % (get_fileserver_root(), token)
def get_ccnet_server_addr_port():
"""get ccnet server host and port"""
return seaserv.CCNET_SERVER_ADDR, seaserv.CCNET_SERVER_PORT
def string2list(string):
"""
Split string contacted with different separators to a list, and remove

View File

@ -4,6 +4,7 @@ from mock import patch
from django.utils import timezone
from django.core.urlresolvers import reverse
from django.test import override_settings
from seahub.test_utils import BaseTestCase
from seahub.invitations.models import Invitation
@ -12,10 +13,11 @@ from seahub.base.accounts import UserPermissions
from seahub.invitations import models
@patch('seahub.api2.endpoints.admin.invitations.ENABLE_GUEST_INVITATION', True)
class InvitationsTest(BaseTestCase):
def setUp(self):
self.url = reverse('api-v2.1-admin-invitations')
@patch.object(CanInviteGuest, 'has_permission')
@patch.object(UserPermissions, 'can_invite_guest')
def test_can_del_all_expired_invitation(self, mock_has_permission, mock_can_invite_guest):
@ -42,10 +44,9 @@ class InvitationsTest(BaseTestCase):
invite_type=models.GUEST,
expire_time=timezone.now())
entry.save()
def test_get_invitations(self):
self.login_as(self.admin)
resp = self.client.get(self.url)
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
@ -63,6 +64,7 @@ class InvitationsTest(BaseTestCase):
self.assertEqual(400, resp.status_code)
@patch('seahub.api2.endpoints.admin.invitations.ENABLE_GUEST_INVITATION', True)
class InvitationTest(BaseTestCase):
def setUp(self):
pass
@ -83,6 +85,7 @@ class InvitationTest(BaseTestCase):
def test_can_delete(self):
self.login_as(self.admin)
token = self._add_invitations('test@noway.com')
url = reverse('api-v2.1-admin-invitation', args=[token])
resp = self.client.delete(url)

View File

@ -121,7 +121,6 @@ class AdminUserTest(BaseTestCase):
assert 'is_staff' in json_resp
assert 'is_active' in json_resp
assert 'create_time' in json_resp
assert 'department' in json_resp
assert 'quota_total' in json_resp
assert 'quota_usage' in json_resp
@ -266,23 +265,6 @@ class AdminUserTest(BaseTestCase):
json_resp = json.loads(resp.content)
self.assertEqual(400, resp.status_code)
def test_update_department(self):
self.login_as(self.admin)
# change user name
department = randstring(10)
data = {"email": self.tmp_email, "department": department}
resp = self.client.put(self.url, json.dumps(data),
'application/json')
json_resp = json.loads(resp.content)
self.assertEqual(200, resp.status_code)
assert json_resp['department'] == department
d_profile = DetailedProfile.objects.get_detailed_profile_by_user(self.tmp_email)
assert d_profile.department == department
def test_update_quota_total(self):
self.login_as(self.admin)

View File

@ -33,7 +33,7 @@ class GroupsTest(BaseTestCase):
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp[0]) == 8
assert len(json_resp[0]) == 7
group_ids = []
for group in json_resp:
@ -46,7 +46,7 @@ class GroupsTest(BaseTestCase):
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp[0]) == 9
assert len(json_resp[0]) == 8
group_ids = []
group_repos = []
@ -69,7 +69,7 @@ class GroupsTest(BaseTestCase):
self.assertEqual(201, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp) == 8
assert len(json_resp) == 7
assert json_resp['name'] == new_group_name
assert json_resp['owner'] == self.user.email
@ -81,7 +81,7 @@ class GroupsTest(BaseTestCase):
self.assertEqual(201, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp) == 8
assert len(json_resp) == 7
assert json_resp['name'] == new_group_name
assert json_resp['owner'] == self.user.email

View File

@ -29,7 +29,6 @@ class GroupsApiTest(ApiTestBase):
self.assertIsNotNone(group['ctime'])
self.assertIsNotNone(group['creator'])
self.assertIsNotNone(group['msgnum'])
self.assertIsNotNone(group['mtime'])
self.assertIsNotNone(group['id'])
self.assertIsNotNone(group['name'])

View File

@ -130,12 +130,6 @@ class CommandTest(BaseTestCase):
assert resp.repo_url == '/library/%(repo_id)s/%(repo_name)s/%(path)s' % {
'repo_id': self.repo.id, 'repo_name': self.repo.name, 'path': ''}
def test_format_group_message(self):
detail = group_msg_to_json(self.group.id, 'from@email.com', 'message')
notice = UserNotification(to_user= 'to@user.com', msg_type='group_msg', detail=detail)
resp = Command().format_group_message(notice)
assert resp.group_url == '/#group/%(group_id)s/discussions/' % {'group_id': self.group.id}
def test_format_repo_share_to_group_msg(self):
if not LOCAL_PRO_DEV_ENV:
return

View File

@ -29,12 +29,6 @@ class UserNotificationTest(BaseTestCase):
'repo_name': self.repo.name,
'path': upload_to.strip('/')} in msg
def test_format_group_message_title(self):
detail = group_msg_to_json(self.group.id, 'from@email.com', 'message')
notice = UserNotification(to_user='to@user.com', msg_type='group_msg', detail=detail)
msg = notice.format_group_message_title()
assert '/#group/%(group_id)s/discussions/' % {'group_id': self.group.id} in msg
def test_format_group_join_request(self):
detail = group_join_request_to_json('group_join', self.group.id, 'join_request_msg')
notice = UserNotification.objects.add_group_join_request_notice('group_join',

View File

@ -11,4 +11,4 @@ class UtilsTest(BaseTestCase):
assert DEFAULT_USER in get_available_roles()
def test_get_enabled_role_permissions_by_role(self):
assert len(list(get_enabled_role_permissions_by_role(DEFAULT_USER).keys())) == 18
assert len(list(get_enabled_role_permissions_by_role(DEFAULT_USER).keys())) == 17

View File

@ -1,56 +0,0 @@
from django.core.urlresolvers import reverse
import seaserv
from seahub.wiki.models import PersonalWiki
from seahub.test_utils import BaseTestCase
class PersonalWikiTest(BaseTestCase):
def test_wiki_does_not_exist(self):
self.login_as(self.user)
resp = self.client.get(reverse('personal_wiki'))
assert resp.context['wiki_exists'] is False
self.assertTemplateUsed('wiki/personal_wiki.html')
def test_home_page_missing(self):
self.login_as(self.user)
PersonalWiki.objects.save_personal_wiki(self.user.username,
self.repo.id)
assert len(PersonalWiki.objects.all()) == 1
resp = self.client.get(reverse('personal_wiki'))
self.assertEqual(302, resp.status_code)
def test_invalid_permisison(self):
self.login_as(self.admin)
data = {'dst_repo': self.repo.id}
resp = self.client.post(reverse('personal_wiki_use_lib'), data)
assert 'Permission denied.' in str(resp.cookies)
self.assertEqual(302, resp.status_code)
def test_invalid_repo(self):
self.login_as(self.user)
data = {'dst_repo': self.repo.id[:30] + '123456'}
resp = self.client.post(reverse('personal_wiki_use_lib'), data)
assert 'Failed to set wiki library.' in str(resp.cookies)
self.assertEqual(302, resp.status_code)
def test_home_page(self):
self.login_as(self.user)
PersonalWiki.objects.save_personal_wiki(self.user.username,
self.repo.id)
assert len(PersonalWiki.objects.all()) == 1
seaserv.post_empty_file(self.repo.id, "/", "home.md",
self.user.username)
for page_name in ["home", "home.md"]:
resp = self.client.get(reverse('personal_wiki', args=[page_name]))
self.assertEqual(200, resp.status_code)
self.assertTemplateUsed('wiki/personal_wiki.html')
self.assertEqual(True, resp.context['wiki_exists'])
self.assertEqual("home", resp.context['page'])
self.assertEqual("/home.md", resp.context['path'])