diff --git a/tests/seahub/views/ajax/test_get_file_upload_url_ul.py b/tests/seahub/views/ajax/test_get_file_upload_url_ul.py index 00e24bd0c5..1945441352 100644 --- a/tests/seahub/views/ajax/test_get_file_upload_url_ul.py +++ b/tests/seahub/views/ajax/test_get_file_upload_url_ul.py @@ -1,46 +1,59 @@ import json - +from mock import patch from django.core.urlresolvers import reverse from seahub.share.models import UploadLinkShare from seahub.test_utils import BaseTestCase -try: - from seahub.settings import LOCAL_PRO_DEV_ENV -except ImportError: - LOCAL_PRO_DEV_ENV = False -class GetDirentsTest(BaseTestCase): +class GetFileUploadUrlULTest(BaseTestCase): def setUp(self): - upload_link = UploadLinkShare.objects.create_upload_link_share(self.user.username, - self.repo.id, self.folder, None, None) + upload_link = UploadLinkShare.objects.create_upload_link_share( + self.user.username, self.repo.id, self.folder, None, None) - self.url = reverse('get_file_upload_url_ul', args=[upload_link.token]) + '?r=' + self.repo.id + self.url = reverse('get_file_upload_url_ul', args=[ + upload_link.token]) + '?r=' + self.repo.id - def test_can_get_with_login_user(self): - if not LOCAL_PRO_DEV_ENV: - return + def _get_fileserver_access_token(self, repo_id, obj_id, op, username, + use_onetime=True): + return 'test_token' + + @patch('seahub.views.ajax.seafile_api.get_fileserver_access_token') + def test_can_get_with_login_user(self, mock_get_fileserver_access_token): + mock_get_fileserver_access_token.return_value = True + mock_get_fileserver_access_token.side_effect = self._get_fileserver_access_token self.login_as(self.user) resp = self.client.get(self.url, HTTP_X_REQUESTED_WITH='XMLHttpRequest') + mock_get_fileserver_access_token.assert_called_with( + self.repo.id, '{"anonymous_user": "%s"}' % self.user.username, + 'upload', '', use_onetime=False) json_resp = json.loads(resp.content) - assert 'upload-aj' in json_resp['url'] + assert 'test_token' in json_resp['url'] - def test_can_get_with_unlogin_user(self): - if not LOCAL_PRO_DEV_ENV: - return + @patch('seahub.views.ajax.seafile_api.get_fileserver_access_token') + def test_can_get_with_unlogin_user(self, mock_get_fileserver_access_token): + mock_get_fileserver_access_token.return_value = True + mock_get_fileserver_access_token.side_effect = self._get_fileserver_access_token resp = self.client.get(self.url, HTTP_X_REQUESTED_WITH='XMLHttpRequest') + mock_get_fileserver_access_token.assert_called_with( + self.repo.id, '{"anonymous_user": ""}', + 'upload', '', use_onetime=False) json_resp = json.loads(resp.content) - assert 'upload-aj' in json_resp['url'] + assert 'test_token' in json_resp['url'] - def test_can_get_with_anonymous_email_in_session(self): - if not LOCAL_PRO_DEV_ENV: - return + @patch('seahub.views.ajax.seafile_api.get_fileserver_access_token') + def test_can_get_with_anonymous_email_in_session(self, mock_get_fileserver_access_token): + mock_get_fileserver_access_token.return_value = True + mock_get_fileserver_access_token.side_effect = self._get_fileserver_access_token session = self.client.session session['anonymous_email'] = 'anonymous@email.com' session.save() resp = self.client.get(self.url, HTTP_X_REQUESTED_WITH='XMLHttpRequest') + mock_get_fileserver_access_token.assert_called_with( + self.repo.id, '{"anonymous_user": "anonymous@email.com"}', + 'upload', '', use_onetime=False) json_resp = json.loads(resp.content) - assert 'upload-aj' in json_resp['url'] + assert 'test_token' in json_resp['url']