1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-10-21 02:42:26 +00:00

Merge branch '6.2'

Conflicts:
	media/css/seahub.css
	seahub/notifications/management/commands/send_notices.py
	seahub/notifications/models.py
	seahub/templates/js/templates.html
	seahub/views/__init__.py
	seahub/views/file.py
	tests/seahub/notifications/management/commands/test_send_notices.py
	tests/seahub/notifications/test_models.py
This commit is contained in:
zhengxie
2018-04-27 11:00:43 +08:00
22 changed files with 350 additions and 146 deletions

View File

@@ -376,7 +376,7 @@ class FilesApiTest(ApiTestBase):
tmp_file_name = '%s.txt' % randstring()
self.create_file(repo, fname=tmp_file_name)
dirents = self.get(repo.dir_url + '?t=d&recursive=1&with_files=1').json()
dirents = self.get(repo.dir_url + '?recursive=1').json()
self.assertHasLen(dirents, len(dir_list) + 1)
for dirent in dirents:
self.assertIsNotNone(dirent['id'])

View File

@@ -1,3 +1,4 @@
# encoding: utf-8
from django.core import mail
from django.core.management import call_command
@@ -10,19 +11,68 @@ from seahub.notifications.models import (
from seahub.profile.models import Profile
from seahub.test_utils import BaseTestCase
from seahub.notifications.management.commands.send_notices import Command
from seahub.share.utils import share_dir_to_user, share_dir_to_group
class CommandTest(BaseTestCase):
def test_can_send(self):
def test_can_send_repo_share_msg(self):
self.assertEqual(len(mail.outbox), 0)
UserNotification.objects.add_repo_share_msg(
self.user.username, repo_share_msg_to_json('bar@bar.com', self.repo.id, '/', None))
Profile.objects.add_or_update(self.user.username, 'nickname')
call_command('send_notices')
self.assertEqual(len(mail.outbox), 1)
assert mail.outbox[0].to[0] == self.user.username
assert 'bar has shared a library named' in mail.outbox[0].body
def test_can_send_folder_share_msg(self):
self.assertEqual(len(mail.outbox), 0)
share_dir_to_user(self.repo, self.folder, 'bar@bar.com', 'bar@bar.com', self.user.username, 'rw', org_id=None)
UserNotification.objects.add_repo_share_msg(
self.user.username, repo_share_msg_to_json('bar@bar.com', self.repo.id, self.folder, None))
call_command('send_notices')
self.assertEqual(len(mail.outbox), 1)
assert mail.outbox[0].to[0] == self.user.username
assert 'bar has shared a folder named' in mail.outbox[0].body
def test_can_send_repo_share_to_group_msg(self):
self.assertEqual(len(mail.outbox), 0)
UserNotification.objects.add_repo_share_to_group_msg(
self.user.username,
repo_share_to_group_msg_to_json('bar@bar.com', self.repo.id, self.group.id, '/', None))
call_command('send_notices')
self.assertEqual(len(mail.outbox), 1)
assert mail.outbox[0].to[0] == self.user.username
assert 'bar has shared a library named' in mail.outbox[0].body
assert 'group/%d' % self.group.id in mail.outbox[0].body
def test_can_send_folder_share_to_group_msg(self):
folder_path = self.folder
share_dir_to_group(self.repo, folder_path, self.user.username,
self.user.username, self.group.id, 'rw', None)
UserNotification.objects.add_repo_share_to_group_msg(
self.user.username,
repo_share_to_group_msg_to_json('bar@bar.com', self.repo.id,
self.group.id, folder_path, None))
call_command('send_notices')
self.assertEqual(len(mail.outbox), 1)
assert mail.outbox[0].to[0] == self.user.username
assert 'bar has shared a folder named' in mail.outbox[0].body
assert 'group/%d' % self.group.id in mail.outbox[0].body
# def test_can_send_with_Chinese_lang(self):
# self.assertEqual(len(mail.outbox), 0)
# UserNotification.objects.add_repo_share_msg(
# self.user.username, repo_share_msg_to_json('bar@bar.com', self.repo.id, '/', None))
# Profile.objects.add_or_update(self.user.username, 'nickname', lang_code='zh-cn')
# call_command('send_notices')
# self.assertEqual(len(mail.outbox), 1)
# assert mail.outbox[0].to[0] == self.user.username
# assert u'bar 共享了资料库' in mail.outbox[0].body
def test_can_send_to_contact_email(self):
self.assertEqual(len(mail.outbox), 0)

View File

@@ -2,11 +2,14 @@ from seahub.notifications.models import (
UserNotification, repo_share_msg_to_json, file_comment_msg_to_json,
repo_share_to_group_msg_to_json, file_uploaded_msg_to_json,
group_join_request_to_json, add_user_to_group_to_json, group_msg_to_json)
from seahub.share.utils import share_dir_to_user, share_dir_to_group
from seahub.test_utils import BaseTestCase
class UserNotificationTest(BaseTestCase):
def setUp(self):
self.clear_cache()
def test_format_file_comment_msg(self):
detail = file_comment_msg_to_json(self.repo.id, self.file,
self.user.username, 'test comment')
@@ -25,25 +28,9 @@ class UserNotificationTest(BaseTestCase):
assert '/#common/lib/%(repo_id)s/%(path)s' % {'repo_id': self.repo.id,
'path': upload_to.strip('/')} in msg
def test_format_repo_share_msg(self):
detail = repo_share_msg_to_json('share@share.com', self.repo.id, '/', -1)
notice = UserNotification.objects.add_repo_share_msg('to@to.com', detail)
msg = notice.format_repo_share_msg()
assert '/#common/lib/%(repo_id)s/%(path)s' % {'repo_id': self.repo.id,
'path': ''} in msg
def test_format_repo_share_to_group_msg(self):
detail = repo_share_to_group_msg_to_json('repo@share.com', self.repo.id, self.group.id, '/', -1)
notice = UserNotification.objects.add_repo_share_to_group_msg('group@share.com', detail)
msg = notice.format_repo_share_to_group_msg()
assert '/#common/lib/%(repo_id)s/%(path)s' % {'repo_id': self.repo.id, 'path': ''} in msg
assert '/#group/%(group_id)s/' % {'group_id': self.group.id} 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)
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
@@ -60,3 +47,48 @@ class UserNotificationTest(BaseTestCase):
detail=detail)
msg = notice.format_add_user_to_group()
assert '/#group/%(group_id)s/' % {'group_id': self.group.id} in msg
def test_format_repo_share_msg(self):
notice = UserNotification.objects.add_repo_share_msg(
self.user.username,
repo_share_msg_to_json('bar@bar.com', self.repo.id, '/', None))
msg = notice.format_repo_share_msg()
assert msg is not None
assert 'bar has shared a library named' in msg
assert '/#common/lib/%(repo_id)s/%(path)s' % {'repo_id': self.repo.id,
'path': ''} in msg
def test_format_repo_share_msg_with_folder(self):
folder_path = self.folder
share_dir_to_user(self.repo, folder_path, self.user.username,
self.user.username, 'bar@bar.com', 'rw', None)
notice = UserNotification.objects.add_repo_share_msg(
self.user.username,
repo_share_msg_to_json('bar@bar.com', self.repo.id, folder_path, None))
msg = notice.format_repo_share_msg()
assert msg is not None
assert 'bar has shared a folder named' in msg
def test_format_repo_share_to_group_msg(self):
notice = UserNotification.objects.add_repo_share_to_group_msg(
self.user.username,
repo_share_to_group_msg_to_json('bar@bar.com', self.repo.id, self.group.id, '/', None))
msg = notice.format_repo_share_to_group_msg()
assert msg is not None
assert 'bar has shared a library named' in msg
assert '/#group/%(group_id)s/' % {'group_id': self.group.id} in msg
def test_format_repo_share_to_group_msg_with_folder(self):
folder_path = self.folder
share_dir_to_group(self.repo, folder_path, self.user.username,
self.user.username, self.group.id, 'rw', None)
notice = UserNotification.objects.add_repo_share_to_group_msg(
self.user.username,
repo_share_to_group_msg_to_json('bar@bar.com', self.repo.id, self.group.id, folder_path, None))
msg = notice.format_repo_share_to_group_msg()
assert msg is not None
assert 'bar has shared a folder named' in msg