mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-02 07:47:32 +00:00
replace seafevents with seafevents_api (#5310)
* replace seafevents with seafevents_api * fix test
This commit is contained in:
parent
4d38b49941
commit
47d5f73b25
@ -17,7 +17,7 @@ from seaserv import ccnet_api
|
||||
from seahub.utils import get_file_ops_stats_by_day, \
|
||||
get_total_storage_stats_by_day, get_user_activity_stats_by_day, \
|
||||
is_pro_version, EVENTS_ENABLED, get_system_traffic_by_day, \
|
||||
seafevents_api
|
||||
get_all_users_traffic_by_month, get_all_orgs_traffic_by_month
|
||||
from seahub.utils.timeutils import datetime_to_isoformat_timestr
|
||||
from seahub.utils.ms_excel import write_xls
|
||||
from seahub.utils.file_size import byte_to_mb
|
||||
@ -253,7 +253,7 @@ class SystemUserTrafficView(APIView):
|
||||
|
||||
# get one more item than per_page, to judge has_next_page
|
||||
try:
|
||||
traffics = seafevents_api.get_all_users_traffic_by_month(month_obj,
|
||||
traffics = get_all_users_traffic_by_month(month_obj,
|
||||
start,
|
||||
start + per_page + 1,
|
||||
order_by)
|
||||
@ -330,7 +330,7 @@ class SystemOrgTrafficView(APIView):
|
||||
|
||||
# get one more item than per_page, to judge has_next_page
|
||||
try:
|
||||
traffics = seafevents_api.get_all_orgs_traffic_by_month(month_obj,
|
||||
traffics = get_all_orgs_traffic_by_month(month_obj,
|
||||
start,
|
||||
start + per_page + 1,
|
||||
order_by)
|
||||
@ -387,7 +387,7 @@ class SystemUserTrafficExcelView(APIView):
|
||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||
|
||||
try:
|
||||
res_data = seafevents_api.get_all_users_traffic_by_month(month_obj, -1, -1)
|
||||
res_data = get_all_users_traffic_by_month(month_obj, -1, -1)
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
error_msg = 'Internal Server Error'
|
||||
|
@ -7,7 +7,7 @@ import posixpath
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from seahub.utils import seafevents_api
|
||||
from seahub.utils import get_all_users_traffic_by_month
|
||||
from seahub.utils.ms_excel import write_xls
|
||||
from seahub.utils.file_size import byte_to_mb
|
||||
|
||||
@ -39,7 +39,7 @@ class Command(BaseCommand):
|
||||
return
|
||||
|
||||
month_obj = datetime.datetime.strptime(month, "%Y%m")
|
||||
res_data = seafevents_api.get_all_users_traffic_by_month(month_obj, -1, -1)
|
||||
res_data = get_all_users_traffic_by_month(month_obj, -1, -1)
|
||||
|
||||
data_list = []
|
||||
head = [_("Time"), _("User"), _("Web Download") + ('(MB)'), \
|
||||
|
@ -9,7 +9,7 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
try:
|
||||
|
||||
import seafevents
|
||||
import seafevents_api
|
||||
|
||||
def repo_created_cb(sender, **kwargs):
|
||||
org_id = kwargs['org_id']
|
||||
@ -43,7 +43,7 @@ try:
|
||||
|
||||
from .utils import SeafEventsSession
|
||||
session = SeafEventsSession()
|
||||
seafevents.save_user_activity(session, record)
|
||||
seafevents_api.save_user_activity(session, record)
|
||||
session.close()
|
||||
|
||||
LIBRARY_TEMPLATES = getattr(settings, 'LIBRARY_TEMPLATES', {})
|
||||
@ -92,7 +92,7 @@ try:
|
||||
|
||||
from .utils import SeafEventsSession
|
||||
session = SeafEventsSession()
|
||||
seafevents.save_user_activity(session, record)
|
||||
seafevents_api.save_user_activity(session, record)
|
||||
session.close()
|
||||
|
||||
def clean_up_repo_trash_cb(sender, **kwargs):
|
||||
@ -129,7 +129,7 @@ try:
|
||||
|
||||
from .utils import SeafEventsSession
|
||||
session = SeafEventsSession()
|
||||
seafevents.save_user_activity(session, record)
|
||||
seafevents_api.save_user_activity(session, record)
|
||||
session.close()
|
||||
|
||||
def repo_restored_cb(sender, **kwargs):
|
||||
@ -161,7 +161,7 @@ try:
|
||||
|
||||
from .utils import SeafEventsSession
|
||||
session = SeafEventsSession()
|
||||
seafevents.save_user_activity(session, record)
|
||||
seafevents_api.save_user_activity(session, record)
|
||||
session.close()
|
||||
except ImportError:
|
||||
|
||||
|
@ -20,7 +20,7 @@ from seahub.options.models import (
|
||||
KEY_FILE_UPDATES_LAST_EMAILED_TIME
|
||||
)
|
||||
from seahub.profile.models import Profile
|
||||
from seahub.utils import (get_site_name, seafevents_api,
|
||||
from seahub.utils import (get_site_name, get_user_activities_by_timestamp,
|
||||
send_html_email, get_site_scheme_and_netloc)
|
||||
from seahub.utils.timeutils import utc_to_local
|
||||
|
||||
@ -228,7 +228,7 @@ class Command(BaseCommand):
|
||||
|
||||
# get file updates(from: last_emailed_time, to: now) for repos
|
||||
# user can access
|
||||
res = seafevents_api.get_user_activities_by_timestamp(
|
||||
res = get_user_activities_by_timestamp(
|
||||
username, last_emailed_time, now)
|
||||
if not res:
|
||||
continue
|
||||
|
@ -16,7 +16,7 @@ from seaserv import ccnet_api
|
||||
from seahub.utils import get_org_file_ops_stats_by_day, \
|
||||
get_org_total_storage_stats_by_day, get_org_user_activity_stats_by_day, \
|
||||
get_org_traffic_by_day, is_pro_version, EVENTS_ENABLED, \
|
||||
seafevents_api
|
||||
get_all_users_traffic_by_month
|
||||
from seahub.utils.timeutils import datetime_to_isoformat_timestr
|
||||
from seahub.utils.ms_excel import write_xls
|
||||
from seahub.utils.file_size import byte_to_mb
|
||||
@ -267,7 +267,7 @@ class OrgUserTrafficView(APIView):
|
||||
|
||||
# get one more item than per_page, to judge has_next_page
|
||||
try:
|
||||
traffics = seafevents_api.get_all_users_traffic_by_month(month_obj,
|
||||
traffics = get_all_users_traffic_by_month(month_obj,
|
||||
start,
|
||||
start + per_page + 1,
|
||||
order_by,
|
||||
@ -322,7 +322,7 @@ class OrgUserTrafficExcelView(APIView):
|
||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||
|
||||
try:
|
||||
res_data = seafevents_api.get_all_users_traffic_by_month(month_obj,
|
||||
res_data = get_all_users_traffic_by_month(month_obj,
|
||||
-1, -1,
|
||||
org_id=org_id)
|
||||
except Exception as e:
|
||||
|
@ -60,7 +60,6 @@ logger = logging.getLogger(__name__)
|
||||
if EVENTS_CONFIG_FILE:
|
||||
try:
|
||||
from seafevents import seafevents_api
|
||||
seafevents_api.init(EVENTS_CONFIG_FILE)
|
||||
except ImportError:
|
||||
logging.exception('Failed to import seafevents package.')
|
||||
seafevents_api = None
|
||||
@ -552,7 +551,7 @@ if EVENTS_CONFIG_FILE:
|
||||
try:
|
||||
import seafevents
|
||||
EVENTS_ENABLED = True
|
||||
SeafEventsSession = seafevents.init_db_session_class(EVENTS_CONFIG_FILE)
|
||||
SeafEventsSession = seafevents_api.init_db_session_class(parsed_events_conf)
|
||||
except ImportError:
|
||||
logging.exception('Failed to import seafevents package.')
|
||||
seafevents = None
|
||||
@ -626,7 +625,7 @@ if EVENTS_CONFIG_FILE:
|
||||
|
||||
events, total_count = [], 0
|
||||
try:
|
||||
events = seafevents.get_user_activities(ev_session,
|
||||
events = seafevents_api.get_user_activities(ev_session,
|
||||
username, start, count)
|
||||
finally:
|
||||
ev_session.close()
|
||||
@ -643,11 +642,11 @@ if EVENTS_CONFIG_FILE:
|
||||
next_start = start
|
||||
while True:
|
||||
if org_id and org_id > 0:
|
||||
events = seafevents.get_org_user_events(ev_session, org_id,
|
||||
events = seafevents_api.get_org_user_events(ev_session, org_id,
|
||||
username, next_start,
|
||||
limit)
|
||||
else:
|
||||
events = seafevents.get_user_events(ev_session, username,
|
||||
events = seafevents_api.get_user_events(ev_session, username,
|
||||
next_start, limit)
|
||||
if not events:
|
||||
break
|
||||
@ -657,7 +656,7 @@ if EVENTS_CONFIG_FILE:
|
||||
repo = seafile_api.get_repo(ev.repo_id)
|
||||
if not repo:
|
||||
# delete the update event for repo which has been deleted
|
||||
seafevents.delete_event(ev_session, ev.uuid)
|
||||
seafevents_api.delete_event(ev_session, ev.uuid)
|
||||
continue
|
||||
if repo.encrypted:
|
||||
repo.password_set = seafile_api.is_password_set(
|
||||
@ -700,13 +699,14 @@ if EVENTS_CONFIG_FILE:
|
||||
"""
|
||||
"""
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents.get_user_activity_stats_by_day(session, start, end, offset)
|
||||
res = seafevents_api.get_user_activity_stats_by_day(session, start, end, offset)
|
||||
return res
|
||||
|
||||
def get_org_user_activity_stats_by_day(org_id, start, end):
|
||||
"""
|
||||
"""
|
||||
res = seafevents_api.get_org_user_activity_stats_by_day(org_id, start, end)
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents_api.get_org_user_activity_stats_by_day(session, org_id, start, end)
|
||||
return res
|
||||
|
||||
def get_org_user_events(org_id, username, start, count):
|
||||
@ -716,14 +716,14 @@ if EVENTS_CONFIG_FILE:
|
||||
"""Return file histories
|
||||
"""
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents.get_file_history(session, repo_id, path, start, count, history_limit)
|
||||
res = seafevents_api.get_file_history(session, repo_id, path, start, count, history_limit)
|
||||
return res
|
||||
|
||||
def get_log_events_by_time(log_type, tstart, tend):
|
||||
"""Return log events list by start/end timestamp. (If no logs, return 'None')
|
||||
"""
|
||||
with _get_seafevents_session() as session:
|
||||
events = seafevents.get_event_log_by_time(session, log_type, tstart, tend)
|
||||
events = seafevents_api.get_event_log_by_time(session, log_type, tstart, tend)
|
||||
|
||||
return events if events else None
|
||||
|
||||
@ -753,7 +753,7 @@ if EVENTS_CONFIG_FILE:
|
||||
15th events.
|
||||
"""
|
||||
with _get_seafevents_session() as session:
|
||||
events = seafevents.get_file_audit_events_by_path(session,
|
||||
events = seafevents_api.get_file_audit_events_by_path(session,
|
||||
email, org_id, repo_id, file_path, start, limit)
|
||||
|
||||
return events if events else None
|
||||
@ -768,7 +768,7 @@ if EVENTS_CONFIG_FILE:
|
||||
15th events.
|
||||
"""
|
||||
with _get_seafevents_session() as session:
|
||||
events = seafevents.get_file_audit_events(session, email, org_id, repo_id, start, limit)
|
||||
events = seafevents_api.get_file_audit_events(session, email, org_id, repo_id, start, limit)
|
||||
|
||||
return events if events else None
|
||||
|
||||
@ -776,36 +776,38 @@ if EVENTS_CONFIG_FILE:
|
||||
""" return file audit record of sepcifiy time group by day.
|
||||
"""
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents.get_file_ops_stats_by_day(session, start, end, offset)
|
||||
res = seafevents_api.get_file_ops_stats_by_day(session, start, end, offset)
|
||||
return res
|
||||
|
||||
def get_org_file_ops_stats_by_day(org_id, start, end, offset):
|
||||
""" return file audit record of sepcifiy time group by day.
|
||||
"""
|
||||
res = seafevents_api.get_org_file_ops_stats_by_day(org_id, start, end, offset)
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents_api.get_org_file_ops_stats_by_day(session, org_id, start, end, offset)
|
||||
return res
|
||||
|
||||
def get_total_storage_stats_by_day(start, end, offset):
|
||||
"""
|
||||
"""
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents.get_total_storage_stats_by_day(session, start, end, offset)
|
||||
res = seafevents_api.get_total_storage_stats_by_day(session, start, end, offset)
|
||||
return res
|
||||
|
||||
def get_org_total_storage_stats_by_day(org_id, start, end, offset):
|
||||
"""
|
||||
"""
|
||||
res = seafevents_api.get_org_storage_stats_by_day(org_id, start, end, offset)
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents_api.get_org_storage_stats_by_day(session, org_id, start, end, offset)
|
||||
return res
|
||||
|
||||
def get_system_traffic_by_day(start, end, offset, op_type='all'):
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents.get_system_traffic_by_day(session, start, end, offset, op_type)
|
||||
res = seafevents_api.get_system_traffic_by_day(session, start, end, offset, op_type)
|
||||
return res
|
||||
|
||||
def get_org_traffic_by_day(org_id, start, end, offset, op_type='all'):
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents.get_org_traffic_by_day(session, org_id, start, end, offset, op_type)
|
||||
res = seafevents_api.get_org_traffic_by_day(session, org_id, start, end, offset, op_type)
|
||||
return res
|
||||
|
||||
def get_file_update_events(email, org_id, repo_id, start, limit):
|
||||
@ -818,7 +820,7 @@ if EVENTS_CONFIG_FILE:
|
||||
15th events.
|
||||
"""
|
||||
with _get_seafevents_session() as session:
|
||||
events = seafevents.get_file_update_events(session, email, org_id, repo_id, start, limit)
|
||||
events = seafevents_api.get_file_update_events(session, email, org_id, repo_id, start, limit)
|
||||
return events if events else None
|
||||
|
||||
def get_perm_audit_events(email, org_id, repo_id, start, limit):
|
||||
@ -831,37 +833,66 @@ if EVENTS_CONFIG_FILE:
|
||||
15th events.
|
||||
"""
|
||||
with _get_seafevents_session() as session:
|
||||
events = seafevents.get_perm_audit_events(session, email, org_id, repo_id, start, limit)
|
||||
events = seafevents_api.get_perm_audit_events(session, email, org_id, repo_id, start, limit)
|
||||
|
||||
return events if events else None
|
||||
|
||||
def get_virus_files(repo_id=None, has_handled=None, start=-1, limit=-1):
|
||||
with _get_seafevents_session() as session:
|
||||
r = seafevents.get_virus_files(session, repo_id, has_handled, start, limit)
|
||||
r = seafevents_api.get_virus_files(session, repo_id, has_handled, start, limit)
|
||||
return r if r else []
|
||||
|
||||
def delete_virus_file(vid):
|
||||
with _get_seafevents_session() as session:
|
||||
return True if seafevents.delete_virus_file(session, vid) == 0 else False
|
||||
return True if seafevents_api.delete_virus_file(session, vid) == 0 else False
|
||||
|
||||
def operate_virus_file(vid, ignore):
|
||||
with _get_seafevents_session() as session:
|
||||
return True if seafevents.operate_virus_file(session, vid, ignore) == 0 else False
|
||||
return True if seafevents_api.operate_virus_file(session, vid, ignore) == 0 else False
|
||||
|
||||
def get_virus_file_by_vid(vid):
|
||||
with _get_seafevents_session() as session:
|
||||
return seafevents.get_virus_file_by_vid(session, vid)
|
||||
return seafevents_api.get_virus_file_by_vid(session, vid)
|
||||
|
||||
def get_file_scan_record(start=-1, limit=-1):
|
||||
records = seafevents_api.get_content_scan_results(start, limit)
|
||||
with _get_seafevents_session() as session:
|
||||
records = seafevents_api.get_content_scan_results(session, start, limit)
|
||||
return records if records else []
|
||||
|
||||
def get_user_activities_by_timestamp(username, start, end):
|
||||
events = seafevents.get_user_activities_by_timestamp(username, start, end)
|
||||
with _get_seafevents_session() as session:
|
||||
events = seafevents_api.get_user_activities_by_timestamp(session, username, start, end)
|
||||
return events if events else []
|
||||
|
||||
def get_all_users_traffic_by_month(month, start=-1, limit=-1, order_by='user', org_id=-1):
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents_api.get_all_users_traffic_by_month(session, month, start, limit, order_by, org_id)
|
||||
return res
|
||||
|
||||
def get_all_orgs_traffic_by_month(month, start=-1, limit=-1, order_by='user'):
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents_api.get_all_orgs_traffic_by_month(session, month, start, limit, order_by)
|
||||
return res
|
||||
|
||||
def get_user_traffic_by_month(username, month):
|
||||
with _get_seafevents_session() as session:
|
||||
res = seafevents_api.get_user_traffic_by_month(session, username, month)
|
||||
return res
|
||||
|
||||
def get_file_history_suffix():
|
||||
return seafevents_api.get_file_history_suffix(parsed_events_conf)
|
||||
|
||||
else:
|
||||
parsed_events_conf = None
|
||||
EVENTS_ENABLED = False
|
||||
def get_file_history_suffix():
|
||||
pass
|
||||
def get_all_users_traffic_by_month():
|
||||
pass
|
||||
def get_all_orgs_traffic_by_month():
|
||||
pass
|
||||
def get_user_traffic_by_month():
|
||||
pass
|
||||
def get_user_events():
|
||||
pass
|
||||
def get_user_activity_stats_by_day():
|
||||
@ -1097,8 +1128,8 @@ FILE_AUDIT_ENABLED = False
|
||||
if EVENTS_CONFIG_FILE:
|
||||
def check_file_audit_enabled():
|
||||
enabled = False
|
||||
if hasattr(seafevents, 'is_audit_enabled'):
|
||||
enabled = seafevents.is_audit_enabled(parsed_events_conf)
|
||||
if hasattr(seafevents_api, 'is_audit_enabled'):
|
||||
enabled = seafevents_api.is_audit_enabled(parsed_events_conf)
|
||||
|
||||
if enabled:
|
||||
logging.debug('file audit: enabled')
|
||||
@ -1186,8 +1217,8 @@ HAS_FILE_SEARCH = False
|
||||
if EVENTS_CONFIG_FILE:
|
||||
def check_search_enabled():
|
||||
enabled = False
|
||||
if hasattr(seafevents, 'is_search_enabled'):
|
||||
enabled = seafevents.is_search_enabled(parsed_events_conf)
|
||||
if hasattr(seafevents_api, 'is_search_enabled'):
|
||||
enabled = seafevents_api.is_search_enabled(parsed_events_conf)
|
||||
|
||||
if enabled:
|
||||
logging.debug('search: enabled')
|
||||
@ -1202,8 +1233,8 @@ ENABLE_REPO_AUTO_DEL = False
|
||||
if EVENTS_CONFIG_FILE:
|
||||
def check_repo_auto_del_enabled():
|
||||
enabled = False
|
||||
if hasattr(seafevents, 'is_repo_auto_del_enabled'):
|
||||
enabled = seafevents.is_repo_auto_del_enabled(EVENTS_CONFIG_FILE)
|
||||
if hasattr(seafevents_api, 'is_repo_auto_del_enabled'):
|
||||
enabled = seafevents_api.is_repo_auto_del_enabled(parsed_events_conf)
|
||||
if enabled:
|
||||
logging.debug('search: enabled')
|
||||
else:
|
||||
|
@ -42,7 +42,7 @@ from seahub.utils import render_permission_error, render_error, \
|
||||
get_user_repos, EMPTY_SHA1, gen_file_get_url, \
|
||||
new_merge_with_no_conflict, get_max_upload_file_size, \
|
||||
is_pro_version, FILE_AUDIT_ENABLED, is_valid_dirent_name, \
|
||||
is_windows_operating_system, seafevents_api, IS_EMAIL_CONFIGURED
|
||||
is_windows_operating_system, get_file_history_suffix, IS_EMAIL_CONFIGURED
|
||||
from seahub.utils.star import get_dir_starred_files
|
||||
from seahub.utils.repo import get_library_storages, parse_repo_perm
|
||||
from seahub.utils.file_op import check_file_lock
|
||||
@ -779,7 +779,7 @@ def file_revisions(request, repo_id):
|
||||
can_revert_file = False
|
||||
|
||||
# Whether use new file history API which read file history from db.
|
||||
suffix_list = seafevents_api.get_file_history_suffix()
|
||||
suffix_list = get_file_history_suffix()
|
||||
if suffix_list and isinstance(suffix_list, list):
|
||||
suffix_list = [x.lower() for x in suffix_list]
|
||||
else:
|
||||
|
@ -62,25 +62,25 @@ class CommandTest(BaseTestCase):
|
||||
|
||||
return [Record(**x) for x in l]
|
||||
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.seafevents_api')
|
||||
def test_dir_evs(self, mock_seafevents_api):
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.return_value = self._dir_evs()
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.get_user_activities_by_timestamp')
|
||||
def test_dir_evs(self, mock_get_user_activities_by_timestamp):
|
||||
mock_get_user_activities_by_timestamp.return_value = self._dir_evs()
|
||||
|
||||
UserOptions.objects.set_file_updates_email_interval(
|
||||
self.user.email, 30)
|
||||
self.assertEqual(len(mail.outbox), 0)
|
||||
|
||||
call_command('send_file_updates')
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.assert_called_once()
|
||||
mock_get_user_activities_by_timestamp.assert_called_once()
|
||||
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
assert mail.outbox[0].to[0] == self.user.username
|
||||
for op in ['Created', 'Deleted', 'Moved', 'Restored', 'Renamed', ]:
|
||||
assert op in mail.outbox[0].body
|
||||
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.seafevents_api')
|
||||
def test_file_evs(self, mock_seafevents_api):
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.return_value = self._file_evs()
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.get_user_activities_by_timestamp')
|
||||
def test_file_evs(self, mock_get_user_activities_by_timestamp):
|
||||
mock_get_user_activities_by_timestamp.return_value = self._file_evs()
|
||||
|
||||
UserOptions.objects.set_file_updates_email_interval(
|
||||
self.user.email, 30)
|
||||
@ -88,7 +88,7 @@ class CommandTest(BaseTestCase):
|
||||
self.assertEqual(len(mail.outbox), 0)
|
||||
|
||||
call_command('send_file_updates')
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.assert_called_once()
|
||||
mock_get_user_activities_by_timestamp.assert_called_once()
|
||||
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
assert mail.outbox[0].to[0] == self.user.username
|
||||
@ -97,9 +97,9 @@ class CommandTest(BaseTestCase):
|
||||
'Renamed', ]:
|
||||
assert op in mail.outbox[0].body
|
||||
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.seafevents_api')
|
||||
def test_repo_evs(self, mock_seafevents_api):
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.get_user_activities_by_timestamp')
|
||||
def test_repo_evs(self, mock_get_user_activities_by_timestamp):
|
||||
mock_get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
|
||||
UserOptions.objects.set_file_updates_email_interval(
|
||||
self.user.email, 30)
|
||||
@ -107,7 +107,7 @@ class CommandTest(BaseTestCase):
|
||||
self.assertEqual(len(mail.outbox), 0)
|
||||
|
||||
call_command('send_file_updates')
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.assert_called_once()
|
||||
mock_get_user_activities_by_timestamp.assert_called_once()
|
||||
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
assert mail.outbox[0].to[0] == self.user.username
|
||||
@ -115,9 +115,9 @@ class CommandTest(BaseTestCase):
|
||||
for op in ['Created', 'Deleted', 'Renamed', 'Removed']:
|
||||
assert op in mail.outbox[0].body
|
||||
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.seafevents_api')
|
||||
def test_seafevents_api(self, mock_seafevents_api):
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.get_user_activities_by_timestamp')
|
||||
def test_seafevents_api(self, mock_get_user_activities_by_timestamp):
|
||||
mock_get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
|
||||
username = self.user.username
|
||||
UserOptions.objects.set_file_updates_email_interval(username, 30)
|
||||
@ -130,8 +130,8 @@ class CommandTest(BaseTestCase):
|
||||
call_command('send_file_updates')
|
||||
after_dt = datetime.datetime.utcnow().replace(microsecond=0)
|
||||
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.assert_called_once()
|
||||
args = mock_seafevents_api.get_user_activities_by_timestamp.call_args[0]
|
||||
mock_get_user_activities_by_timestamp.assert_called_once()
|
||||
args = mock_get_user_activities_by_timestamp.call_args[0]
|
||||
assert args[0] == username
|
||||
assert args[1] == today
|
||||
|
||||
@ -140,37 +140,37 @@ class CommandTest(BaseTestCase):
|
||||
assert last_emailed_dt <= after_dt
|
||||
assert last_emailed_dt == args[2]
|
||||
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.seafevents_api')
|
||||
def test_email_interval(self, mock_seafevents_api):
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.get_user_activities_by_timestamp')
|
||||
def test_email_interval(self, mock_get_user_activities_by_timestamp):
|
||||
mock_get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
|
||||
username = self.user.username
|
||||
assert UserOptions.objects.get_file_updates_last_emailed_time(username) is None
|
||||
|
||||
# assume this command will be finished in 5 seconds
|
||||
UserOptions.objects.set_file_updates_email_interval(username, 5)
|
||||
assert mock_seafevents_api.get_user_activities_by_timestamp.called is False
|
||||
assert mock_get_user_activities_by_timestamp.called is False
|
||||
call_command('send_file_updates')
|
||||
assert mock_seafevents_api.get_user_activities_by_timestamp.called is True
|
||||
assert mock_get_user_activities_by_timestamp.called is True
|
||||
|
||||
# still within 5 seconds ...
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.reset_mock()
|
||||
assert mock_seafevents_api.get_user_activities_by_timestamp.called is False
|
||||
mock_get_user_activities_by_timestamp.reset_mock()
|
||||
assert mock_get_user_activities_by_timestamp.called is False
|
||||
call_command('send_file_updates')
|
||||
assert mock_seafevents_api.get_user_activities_by_timestamp.called is False
|
||||
assert mock_get_user_activities_by_timestamp.called is False
|
||||
|
||||
time.sleep(5) # 5 seconds passed
|
||||
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.reset_mock()
|
||||
assert mock_seafevents_api.get_user_activities_by_timestamp.called is False
|
||||
mock_get_user_activities_by_timestamp.reset_mock()
|
||||
assert mock_get_user_activities_by_timestamp.called is False
|
||||
call_command('send_file_updates')
|
||||
assert mock_seafevents_api.get_user_activities_by_timestamp.called is True
|
||||
assert mock_get_user_activities_by_timestamp.called is True
|
||||
|
||||
@override_settings(TIME_ZONE='Asia/Shanghai')
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.seafevents_api')
|
||||
def test_timezone_in_email_body(self, mock_seafevents_api):
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.get_user_activities_by_timestamp')
|
||||
def test_timezone_in_email_body(self, mock_get_user_activities_by_timestamp):
|
||||
assert timezone.get_default_timezone_name() == 'Asia/Shanghai'
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
mock_get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
|
||||
UserOptions.objects.set_file_updates_email_interval(
|
||||
self.user.email, 30)
|
||||
@ -180,9 +180,9 @@ class CommandTest(BaseTestCase):
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
assert '2018-11-05 14:46:02' in mail.outbox[0].body
|
||||
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.seafevents_api')
|
||||
def test_invalid_option_vals(self, mock_seafevents_api):
|
||||
mock_seafevents_api.get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
@patch('seahub.notifications.management.commands.send_file_updates.get_user_activities_by_timestamp')
|
||||
def test_invalid_option_vals(self, mock_get_user_activities_by_timestamp):
|
||||
mock_get_user_activities_by_timestamp.return_value = self._repo_evs()
|
||||
|
||||
UserOptions.objects.set_file_updates_email_interval(
|
||||
self.user.email, 'a')
|
||||
|
Loading…
Reference in New Issue
Block a user