2016-04-12 10:07:49 +00:00
|
|
|
import time
|
|
|
|
import datetime
|
|
|
|
from mock import patch
|
|
|
|
|
|
|
|
from django.core.urlresolvers import reverse
|
|
|
|
from seahub.test_utils import BaseTestCase
|
|
|
|
|
2016-04-13 02:40:23 +00:00
|
|
|
try:
|
|
|
|
from seahub.settings import LOCAL_PRO_DEV_ENV
|
|
|
|
except ImportError:
|
|
|
|
LOCAL_PRO_DEV_ENV = False
|
|
|
|
|
2016-04-23 10:07:09 +00:00
|
|
|
class FileAuditTest(BaseTestCase):
|
2016-04-12 10:07:49 +00:00
|
|
|
|
|
|
|
@patch('seahub.views.file.is_pro_version')
|
|
|
|
def test_can_not_get_if_start_time_invalid(self, mock_is_pro_version):
|
2016-04-13 02:40:23 +00:00
|
|
|
|
|
|
|
if not LOCAL_PRO_DEV_ENV:
|
|
|
|
return
|
|
|
|
|
2016-04-12 10:07:49 +00:00
|
|
|
mock_is_pro_version.return_value = True
|
|
|
|
|
|
|
|
self.login_as(self.admin)
|
|
|
|
|
|
|
|
start_timestamp = time.time() - 7 * 24 * 60 * 60
|
|
|
|
end_timestamp = time.time()
|
|
|
|
start_time_str = datetime.datetime.fromtimestamp(start_timestamp).strftime('%Y-%m-%d')
|
|
|
|
end_time_str = datetime.datetime.fromtimestamp(end_timestamp).strftime('%Y-%m-%d')
|
|
|
|
|
|
|
|
para_str = '?star=%s&end=%s' % (start_time_str, end_time_str)
|
2016-04-14 09:36:50 +00:00
|
|
|
url = reverse('api-v2.1-admin-logs-file-audit') + para_str
|
2016-04-12 10:07:49 +00:00
|
|
|
resp = self.client.get(url)
|
|
|
|
self.assertEqual(400, resp.status_code)
|
|
|
|
|
|
|
|
@patch('seahub.views.file.is_pro_version')
|
|
|
|
def test_can_not_get_if_end_time_invalid(self, mock_is_pro_version):
|
2016-04-13 02:40:23 +00:00
|
|
|
|
|
|
|
if not LOCAL_PRO_DEV_ENV:
|
|
|
|
return
|
|
|
|
|
2016-04-12 10:07:49 +00:00
|
|
|
mock_is_pro_version.return_value = True
|
|
|
|
|
|
|
|
self.login_as(self.admin)
|
|
|
|
|
|
|
|
start_timestamp = time.time() - 7 * 24 * 60 * 60
|
|
|
|
end_timestamp = time.time()
|
|
|
|
start_time_str = datetime.datetime.fromtimestamp(start_timestamp).strftime('%Y-%m-%d')
|
|
|
|
end_time_str = datetime.datetime.fromtimestamp(end_timestamp).strftime('%Y-%m-%d')
|
|
|
|
|
|
|
|
para_str = '?start=%s&en=%s' % (start_time_str, end_time_str)
|
2016-04-14 09:36:50 +00:00
|
|
|
url = reverse('api-v2.1-admin-logs-file-audit') + para_str
|
2016-04-12 10:07:49 +00:00
|
|
|
resp = self.client.get(url)
|
|
|
|
self.assertEqual(400, resp.status_code)
|
|
|
|
|
|
|
|
def test_can_not_get_if_not_admin(self):
|
2016-04-13 02:40:23 +00:00
|
|
|
|
|
|
|
if not LOCAL_PRO_DEV_ENV:
|
|
|
|
return
|
|
|
|
|
2016-04-12 10:07:49 +00:00
|
|
|
self.login_as(self.user)
|
|
|
|
|
|
|
|
start_timestamp = time.time() - 7 * 24 * 60 * 60
|
|
|
|
end_timestamp = time.time()
|
|
|
|
start_time_str = datetime.datetime.fromtimestamp(start_timestamp).strftime('%Y-%m-%d')
|
|
|
|
end_time_str = datetime.datetime.fromtimestamp(end_timestamp).strftime('%Y-%m-%d')
|
|
|
|
|
|
|
|
para_str = '?start=%s&end=%s' % (start_time_str, end_time_str)
|
2016-04-14 09:36:50 +00:00
|
|
|
url = reverse('api-v2.1-admin-logs-file-audit') + para_str
|
2016-04-12 10:07:49 +00:00
|
|
|
resp = self.client.get(url)
|
|
|
|
self.assertEqual(403, resp.status_code)
|