mirror of
https://github.com/haiwen/seahub.git
synced 2025-05-12 01:45:04 +00:00
move seahub-extra import inside api (#4221)
* move seahub-extra import inside api * fix repos api, delete CCNET_SERVER_PORT * fix test cases
This commit is contained in:
parent
8f861c003b
commit
d95da0bff1
seahub
tests
api
seahub
notifications
role_permissions
views/wiki
@ -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()
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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'])
|
||||
|
||||
|
@ -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
|
||||
|
@ -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',
|
||||
|
@ -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
|
||||
|
@ -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'])
|
Loading…
Reference in New Issue
Block a user