diff --git a/requirements.txt b/requirements.txt index d9438a99a3..c58f27db9f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ -Django==1.11.29 +Django==2.2.14 future captcha django-statici18n django-post_office==3.3.0 django-webpack_loader gunicorn -pymysql +mysqlclient django-picklefield==2.1.1 openpyxl qrcode diff --git a/seahub/__init__.py b/seahub/__init__.py index de06494eb0..20f284be13 100644 --- a/seahub/__init__.py +++ b/seahub/__init__.py @@ -1,6 +1,4 @@ # Copyright (c) 2012-2016 Seafile Ltd. -import pymysql -pymysql.install_as_MySQLdb() from .signals import repo_created, repo_deleted, clean_up_repo_trash, \ repo_restored from .handlers import repo_created_cb, repo_deleted_cb, clean_up_repo_trash_cb, \ diff --git a/seahub/api2/endpoints/admin/login_logs.py b/seahub/api2/endpoints/admin/login_logs.py index 3ae41fb6e0..d48a13618e 100644 --- a/seahub/api2/endpoints/admin/login_logs.py +++ b/seahub/api2/endpoints/admin/login_logs.py @@ -6,7 +6,7 @@ from rest_framework.permissions import IsAdminUser from rest_framework.response import Response from rest_framework.views import APIView from rest_framework import status -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import ccnet_api diff --git a/seahub/api2/endpoints/admin/operation_logs.py b/seahub/api2/endpoints/admin/operation_logs.py index 21931f1882..b3bfa38fc8 100644 --- a/seahub/api2/endpoints/admin/operation_logs.py +++ b/seahub/api2/endpoints/admin/operation_logs.py @@ -6,7 +6,7 @@ from rest_framework.permissions import IsAdminUser from rest_framework.response import Response from rest_framework.views import APIView from rest_framework import status -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.utils.timeutils import datetime_to_isoformat_timestr from seahub.admin_log.models import AdminLog, ADMIN_LOG_OPERATION_TYPE diff --git a/seahub/api2/endpoints/file_comments.py b/seahub/api2/endpoints/file_comments.py index 8e6649eba5..8763e02fb4 100644 --- a/seahub/api2/endpoints/file_comments.py +++ b/seahub/api2/endpoints/file_comments.py @@ -8,8 +8,7 @@ from rest_framework.response import Response from rest_framework.views import APIView from seaserv import seafile_api from pysearpc import SearpcError -from django.db.models import Count -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.api2.authentication import TokenAuthentication from seahub.api2.permissions import IsRepoAccessible diff --git a/seahub/api2/endpoints/share_link_zip_task.py b/seahub/api2/endpoints/share_link_zip_task.py index 34eccc24e2..f5d3e82f1a 100644 --- a/seahub/api2/endpoints/share_link_zip_task.py +++ b/seahub/api2/endpoints/share_link_zip_task.py @@ -41,8 +41,8 @@ class ShareLinkZipTaskView(APIView): # permission check if is_pro_version() and settings.ENABLE_SHARE_LINK_AUDIT: - if not request.user.is_authenticated() and \ - not request.session.get('anonymous_email'): + if not request.user.is_authenticated and \ + not request.session.get('anonymous_email'): # if anonymous user has passed email code check, # then his/her email info will be in session. diff --git a/seahub/api2/throttling.py b/seahub/api2/throttling.py index 0c33668862..4c8c9d5ed5 100644 --- a/seahub/api2/throttling.py +++ b/seahub/api2/throttling.py @@ -177,7 +177,7 @@ class AnonRateThrottle(SimpleRateThrottle): scope = 'anon' def get_cache_key(self, request, view): - if request.user.is_authenticated(): + if request.user.is_authenticated: return None # Only throttle unauthenticated requests. return self.cache_format % { @@ -197,7 +197,7 @@ class UserRateThrottle(SimpleRateThrottle): scope = 'user' def get_cache_key(self, request, view): - if request.user.is_authenticated(): + if request.user.is_authenticated: ident = request.user.id else: ident = self.get_ident(request) @@ -245,7 +245,7 @@ class ScopedRateThrottle(SimpleRateThrottle): Otherwise generate the unique cache key by concatenating the user id with the '.throttle_scope` property of the view. """ - if request.user.is_authenticated(): + if request.user.is_authenticated: ident = request.user.id else: ident = self.get_ident(request) diff --git a/seahub/auth/middleware.py b/seahub/auth/middleware.py index d1ae0d8a86..54557ac8f0 100644 --- a/seahub/auth/middleware.py +++ b/seahub/auth/middleware.py @@ -24,11 +24,11 @@ class LazyUser(object): return request._cached_user -class AuthenticationMiddleware(object): +class AuthenticationMiddleware(MiddlewareMixin): def process_request(self, request): assert hasattr( request, 'session' - ), "The Django authentication middleware requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." + ), "The Django authentication middleware requires session middleware to be installed. Edit your MIDDLEWARE setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." request.__class__.user = LazyUser() if request.user.is_authenticated() and not request.user.is_active: request.session.clear() diff --git a/seahub/auth/views.py b/seahub/auth/views.py index 874b488a4a..721ea2c123 100644 --- a/seahub/auth/views.py +++ b/seahub/auth/views.py @@ -5,7 +5,7 @@ from datetime import datetime from django.conf import settings # Avoid shadowing the login() view below. from django.views.decorators.csrf import csrf_protect -from django.core.urlresolvers import reverse +from django.urls import reverse from django.contrib import messages from django.shortcuts import render from django.contrib.sites.shortcuts import get_current_site @@ -48,7 +48,7 @@ logger = logging.getLogger(__name__) def log_user_in(request, user, redirect_to): # Ensure the user-originating redirection url is safe. - if not is_safe_url(url=redirect_to, host=request.get_host()): + if not is_safe_url(url=redirect_to, allowed_hosts=request.get_host()): redirect_to = settings.LOGIN_REDIRECT_URL if request.session.test_cookie_worked(): @@ -259,7 +259,7 @@ def logout(request, next_page=None, if redirect_field_name in request.GET: next_page = request.GET[redirect_field_name] # Security check -- don't allow redirection to a different host. - if not is_safe_url(url=next_page, host=request.get_host()): + if not is_safe_url(url=next_page, allowed_hosts=request.get_host()): next_page = request.path if next_page is None: diff --git a/seahub/avatar/templatetags/avatar_tags.py b/seahub/avatar/templatetags/avatar_tags.py index f2c9f4c804..3100f0230d 100644 --- a/seahub/avatar/templatetags/avatar_tags.py +++ b/seahub/avatar/templatetags/avatar_tags.py @@ -5,7 +5,7 @@ import hashlib from urllib.parse import urlparse from django import template -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils.html import format_html from seahub.base.accounts import User diff --git a/seahub/avatar/tests.py b/seahub/avatar/tests.py index f2ed371760..e310dd7ce1 100644 --- a/seahub/avatar/tests.py +++ b/seahub/avatar/tests.py @@ -2,7 +2,7 @@ import os.path from django.test import TestCase -from django.core.urlresolvers import reverse +from django.urls import reverse from django.conf import settings from seahub.base.accounts import User diff --git a/seahub/base/decorators.py b/seahub/base/decorators.py index f862195d27..f07a7a85bf 100644 --- a/seahub/base/decorators.py +++ b/seahub/base/decorators.py @@ -1,5 +1,5 @@ # Copyright (c) 2012-2016 Seafile Ltd. -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import Http404, HttpResponseRedirect, HttpResponseNotAllowed from django.shortcuts import render diff --git a/seahub/base/middleware.py b/seahub/base/middleware.py index 169697aa20..ddda7853ed 100644 --- a/seahub/base/middleware.py +++ b/seahub/base/middleware.py @@ -1,9 +1,10 @@ # Copyright (c) 2012-2016 Seafile Ltd. import re +from django.utils.deprecation import MiddlewareMixin from django.core.cache import cache -from django.core.urlresolvers import reverse -from django.http import HttpResponseRedirect, HttpResponseForbidden +from django.urls import reverse +from django.http import HttpResponseRedirect from seaserv import ccnet_api @@ -21,7 +22,7 @@ except ImportError: MULTI_TENANCY = False from seahub.settings import SITE_ROOT -class BaseMiddleware(object): +class BaseMiddleware(MiddlewareMixin): """ Middleware that add organization, group info to user. """ @@ -45,7 +46,7 @@ class BaseMiddleware(object): def process_response(self, request, response): return response -class InfobarMiddleware(object): +class InfobarMiddleware(MiddlewareMixin): """Query info bar close status, and store into request.""" def get_from_db(self): @@ -81,7 +82,7 @@ class InfobarMiddleware(object): return response -class ForcePasswdChangeMiddleware(object): +class ForcePasswdChangeMiddleware(MiddlewareMixin): def _request_in_black_list(self, request): path = request.path black_list = (r'^%s$' % SITE_ROOT, r'home/.+', r'repo/.+', diff --git a/seahub/base/profile.py b/seahub/base/profile.py index 14f0e3c919..df96a76299 100644 --- a/seahub/base/profile.py +++ b/seahub/base/profile.py @@ -31,8 +31,9 @@ except ImportError: import pstats from io import StringIO from django.conf import settings +from django.utils.deprecation import MiddlewareMixin -class ProfilerMiddleware(object): +class ProfilerMiddleware(MiddlewareMixin): """ Simple profile middleware to profile django views. To run it, add ?prof to the URL like this: diff --git a/seahub/base/templatetags/rest_framework.py b/seahub/base/templatetags/rest_framework.py index 100f3e72d9..25da7db011 100644 --- a/seahub/base/templatetags/rest_framework.py +++ b/seahub/base/templatetags/rest_framework.py @@ -1,6 +1,6 @@ # Copyright (c) 2012-2016 Seafile Ltd. from django import template -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import QueryDict from django.utils.encoding import force_text from django.utils.html import escape diff --git a/seahub/bisheng_office/utils.py b/seahub/bisheng_office/utils.py index 0347c3a1b5..a98e880697 100644 --- a/seahub/bisheng_office/utils.py +++ b/seahub/bisheng_office/utils.py @@ -4,7 +4,7 @@ import hashlib import urllib.parse -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils.encoding import force_bytes from seahub.utils import get_site_scheme_and_netloc diff --git a/seahub/contacts/views.py b/seahub/contacts/views.py index 8c87ae2dd6..a9eb98828c 100644 --- a/seahub/contacts/views.py +++ b/seahub/contacts/views.py @@ -5,7 +5,7 @@ import json from django.http import HttpResponse, HttpResponseBadRequest, \ HttpResponseRedirect from django.shortcuts import render, Http404 -from django.core.urlresolvers import reverse +from django.urls import reverse from django.core.exceptions import ObjectDoesNotExist from django.forms.models import modelformset_factory diff --git a/seahub/dingtalk/views.py b/seahub/dingtalk/views.py index 3d20126e66..655e57ae5a 100644 --- a/seahub/dingtalk/views.py +++ b/seahub/dingtalk/views.py @@ -11,7 +11,7 @@ import requests from hashlib import sha256 from django.http import HttpResponseRedirect -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils.translation import ugettext as _ from seahub.api2.utils import get_api_token diff --git a/seahub/group/views.py b/seahub/group/views.py index fcd6c693b6..5ae63a67c8 100644 --- a/seahub/group/views.py +++ b/seahub/group/views.py @@ -3,7 +3,7 @@ import logging from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseRedirect from django.shortcuts import render diff --git a/seahub/institutions/middleware.py b/seahub/institutions/middleware.py index b00c76c71a..7d296cb1c3 100644 --- a/seahub/institutions/middleware.py +++ b/seahub/institutions/middleware.py @@ -1,10 +1,11 @@ # Copyright (c) 2012-2016 Seafile Ltd. from django.conf import settings +from django.utils.deprecation import MiddlewareMixin from seahub.institutions.models import InstitutionAdmin -class InstitutionMiddleware(object): +class InstitutionMiddleware(MiddlewareMixin): def process_request(self, request): if not getattr(settings, 'MULTI_INSTITUTION', False): return None diff --git a/seahub/institutions/migrations/0001_initial.py b/seahub/institutions/migrations/0001_initial.py index 65090d9757..7715c87ce5 100644 --- a/seahub/institutions/migrations/0001_initial.py +++ b/seahub/institutions/migrations/0001_initial.py @@ -24,7 +24,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('user', models.EmailField(max_length=254)), - ('institution', models.ForeignKey(to='institutions.Institution')), + ('institution', models.ForeignKey(to='institutions.Institution', on_delete=models.CASCADE)), ], ), ] diff --git a/seahub/institutions/migrations/0002_institutionquota.py b/seahub/institutions/migrations/0002_institutionquota.py index 832f3317ce..18ad6ef3e4 100644 --- a/seahub/institutions/migrations/0002_institutionquota.py +++ b/seahub/institutions/migrations/0002_institutionquota.py @@ -16,7 +16,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('quota', models.BigIntegerField()), - ('institution', models.ForeignKey(to='institutions.Institution')), + ('institution', models.ForeignKey(to='institutions.Institution', on_delete=models.CASCADE)), ], ), ] diff --git a/seahub/institutions/models.py b/seahub/institutions/models.py index 0eb56388a6..ef2a84fe30 100644 --- a/seahub/institutions/models.py +++ b/seahub/institutions/models.py @@ -17,7 +17,7 @@ class Institution(models.Model): objects = InstitutionManager() class InstitutionAdmin(models.Model): - institution = models.ForeignKey(Institution) + institution = models.ForeignKey(Institution, on_delete=models.CASCADE) user = LowerCaseCharField(max_length=255, db_index=True) @@ -30,6 +30,6 @@ class InstitutionQuotaManager(models.Manager): class InstitutionQuota(models.Model): - institution = models.ForeignKey(Institution) + institution = models.ForeignKey(Institution, on_delete=models.CASCADE) quota = models.BigIntegerField() objects = InstitutionQuotaManager() diff --git a/seahub/institutions/views.py b/seahub/institutions/views.py index 7979533ad1..101e9948a8 100644 --- a/seahub/institutions/views.py +++ b/seahub/institutions/views.py @@ -2,7 +2,7 @@ import json import logging -from django.core.urlresolvers import reverse +from django.urls import reverse from django.contrib import messages from django.http import HttpResponseRedirect, HttpResponse from django.shortcuts import render diff --git a/seahub/notifications/management/commands/notify_admins_on_virus.py b/seahub/notifications/management/commands/notify_admins_on_virus.py index e35795adf8..c32867edf3 100644 --- a/seahub/notifications/management/commands/notify_admins_on_virus.py +++ b/seahub/notifications/management/commands/notify_admins_on_virus.py @@ -5,7 +5,7 @@ import logging from django.conf import settings as dj_settings from django.core.management.base import BaseCommand -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils import translation from django.utils.translation import ugettext as _ import seaserv diff --git a/seahub/notifications/management/commands/send_dingtalk_notifications.py b/seahub/notifications/management/commands/send_dingtalk_notifications.py index ae8157c717..3056c97f04 100644 --- a/seahub/notifications/management/commands/send_dingtalk_notifications.py +++ b/seahub/notifications/management/commands/send_dingtalk_notifications.py @@ -7,7 +7,7 @@ import requests import json from django.core.management.base import BaseCommand -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils import translation from django.utils.translation import ungettext diff --git a/seahub/notifications/management/commands/send_file_updates.py b/seahub/notifications/management/commands/send_file_updates.py index c8be42b028..cbb1e6364f 100644 --- a/seahub/notifications/management/commands/send_file_updates.py +++ b/seahub/notifications/management/commands/send_file_updates.py @@ -6,7 +6,7 @@ import os import re from django.core.management.base import BaseCommand -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils.html import escape as e from django.utils import translation from django.utils.translation import ugettext as _ diff --git a/seahub/notifications/management/commands/send_notices.py b/seahub/notifications/management/commands/send_notices.py index e1dcfe2c7b..1138a1ce9c 100644 --- a/seahub/notifications/management/commands/send_notices.py +++ b/seahub/notifications/management/commands/send_notices.py @@ -7,7 +7,7 @@ import os import re from django.core.management.base import BaseCommand -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils.html import escape from django.utils import translation from django.utils.translation import ugettext as _ diff --git a/seahub/notifications/models.py b/seahub/notifications/models.py index f88c4a3357..f77e0067cf 100644 --- a/seahub/notifications/models.py +++ b/seahub/notifications/models.py @@ -5,7 +5,7 @@ import os import json import logging -from django.core.urlresolvers import reverse +from django.urls import reverse from django.db import models from django.conf import settings from django.forms import ModelForm, Textarea diff --git a/seahub/notifications/tests.py b/seahub/notifications/tests.py index 07bf48527c..b804c9e4d3 100644 --- a/seahub/notifications/tests.py +++ b/seahub/notifications/tests.py @@ -1,5 +1,5 @@ # Copyright (c) 2012-2016 Seafile Ltd. -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import TestCase, Client from .models import Notification diff --git a/seahub/notifications/utils.py b/seahub/notifications/utils.py index 36e555653b..88884faba6 100644 --- a/seahub/notifications/utils.py +++ b/seahub/notifications/utils.py @@ -3,7 +3,7 @@ import os import json import logging from django.core.cache import cache -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import ccnet_api, seafile_api from seahub.notifications.models import Notification diff --git a/seahub/notifications/views.py b/seahub/notifications/views.py index f9e3471464..d1b3a4a485 100644 --- a/seahub/notifications/views.py +++ b/seahub/notifications/views.py @@ -3,7 +3,7 @@ import json import logging from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.contrib import messages from django.http import HttpResponseRedirect, Http404, HttpResponse from django.shortcuts import render diff --git a/seahub/onlyoffice/utils.py b/seahub/onlyoffice/utils.py index 262b7342cc..52c49eed94 100644 --- a/seahub/onlyoffice/utils.py +++ b/seahub/onlyoffice/utils.py @@ -5,7 +5,7 @@ import urllib.parse import posixpath from django.core.cache import cache -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils.encoding import force_bytes from seaserv import seafile_api diff --git a/seahub/password_session/middleware.py b/seahub/password_session/middleware.py index 37cf7b0f7b..2e2303031a 100644 --- a/seahub/password_session/middleware.py +++ b/seahub/password_session/middleware.py @@ -1,10 +1,11 @@ # Copyright (c) 2012-2016 Seafile Ltd. from django.contrib.auth import logout +from django.utils.deprecation import MiddlewareMixin from .handlers import get_password_hash, PASSWORD_HASH_KEY -class CheckPasswordHash(object): +class CheckPasswordHash(MiddlewareMixin): """Logout user if value of hash key in session is not equal to current password hash""" def process_view(self, request, *args, **kwargs): if getattr(request.user, 'is_authenticated') and request.user.is_authenticated(): diff --git a/seahub/profile/urls.py b/seahub/profile/urls.py index 5c8c17d183..faf950a011 100644 --- a/seahub/profile/urls.py +++ b/seahub/profile/urls.py @@ -8,7 +8,7 @@ urlpatterns = [ url(r'^(?P[^/]+)/get/$', get_user_profile, name="get_user_profile"), url(r'^delete/$', delete_user_account, name="delete_user_account"), url(r'^default-repo/$', default_repo, name="default_repo"), - url(r'^two_factor_authentication/', include('seahub.two_factor.urls', 'two_factor')), + url(r'^two_factor_authentication/', include(('seahub.two_factor.urls', 'two_factor'), namespace='two_factor')), ] # Move the catch-all pattern to the end. diff --git a/seahub/profile/views.py b/seahub/profile/views.py index 56c03f7811..802ec72547 100644 --- a/seahub/profile/views.py +++ b/seahub/profile/views.py @@ -2,7 +2,7 @@ # encoding: utf-8 from django.conf import settings import json -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponse, HttpResponseRedirect, Http404 from django.shortcuts import render from django.contrib import messages diff --git a/seahub/revision_tag/models.py b/seahub/revision_tag/models.py index 7ba34be3c4..4d7ec7f2da 100644 --- a/seahub/revision_tag/models.py +++ b/seahub/revision_tag/models.py @@ -1,7 +1,7 @@ # Copyright (c) 2012-2016 Seafile Ltd. import os from django.db import models -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.base.fields import LowerCaseCharField from seahub.base.templatetags.seahub_tags import email2nickname, email2contact_email diff --git a/seahub/settings.py b/seahub/settings.py index d5aefb851b..c1faeec58c 100644 --- a/seahub/settings.py +++ b/seahub/settings.py @@ -14,9 +14,9 @@ DEBUG = False CLOUD_MODE = False -ADMINS = ( +ADMINS = [ # ('Your Name', 'your_email@domain.com'), -) +] MANAGERS = ADMINS @@ -110,7 +110,7 @@ SECRET_KEY = 'n*v0=jz-1rz@(4gx^tf%6^e7c&um@2)g-l=3_)t@19a69n1nv6' ENABLE_REMOTE_USER_AUTHENTICATION = False # Order is important -MIDDLEWARE_CLASSES = ( +MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', @@ -124,8 +124,8 @@ MIDDLEWARE_CLASSES = ( 'termsandconditions.middleware.TermsAndConditionsRedirectMiddleware', 'seahub.two_factor.middleware.OTPMiddleware', 'seahub.two_factor.middleware.ForceTwoFactorAuthMiddleware', - 'seahub.trusted_ip.middleware.LimitIpMiddleware', -) + 'seahub.trusted_ip.middleware.LimitIpMiddleware' +] SITE_ROOT_URLCONF = 'seahub.urls' @@ -161,7 +161,7 @@ TEMPLATES = [ ] -LANGUAGES = ( +LANGUAGES = [ # ('bg', gettext_noop(u'български език')), ('ca', 'Català'), ('cs', 'Čeština'), @@ -196,14 +196,14 @@ LANGUAGES = ( # ('lt', 'Lietuvių kalba'), ('zh-cn', '简体中文'), ('zh-tw', '繁體中文'), -) +] -LOCALE_PATHS = ( +LOCALE_PATHS = [ os.path.join(PROJECT_ROOT, 'locale'), os.path.join(PROJECT_ROOT, 'seahub/trusted_ip/locale'), -) +] -INSTALLED_APPS = ( +INSTALLED_APPS = [ 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', @@ -253,7 +253,7 @@ INSTALLED_APPS = ( 'seahub.file_participants', 'seahub.repo_api_tokens', 'seahub.abuse_reports', -) +] # Enable or disable view File Scan # ENABLE_FILE_SCAN = True @@ -832,7 +832,7 @@ else: DATABASES['default']['NAME'] = os.path.join(install_topdir, 'seahub.db') # In server release, gunicorn is used to deploy seahub - INSTALLED_APPS += ('gunicorn', ) + INSTALLED_APPS.append('gunicorn') load_local_settings(seahub_settings) del seahub_settings @@ -888,7 +888,7 @@ CONSTANCE_CONFIG = { # then add 'seahub.auth.middleware.SeafileRemoteUserMiddleware' and # 'seahub.auth.backends.SeafileRemoteUserBackend' to settings. if ENABLE_REMOTE_USER_AUTHENTICATION: - MIDDLEWARE_CLASSES += ('seahub.auth.middleware.SeafileRemoteUserMiddleware',) + MIDDLEWARE.append('seahub.auth.middleware.SeafileRemoteUserMiddleware') AUTHENTICATION_BACKENDS += ('seahub.auth.backends.SeafileRemoteUserBackend',) if ENABLE_OAUTH or ENABLE_WORK_WEIXIN or ENABLE_WEIXIN or ENABLE_DINGTALK: diff --git a/seahub/share/models.py b/seahub/share/models.py index 4e60e8e93c..9edead2c95 100644 --- a/seahub/share/models.py +++ b/seahub/share/models.py @@ -390,10 +390,9 @@ class OrgFileShare(models.Model): Model used for organization file or dir shared link. """ org_id = models.IntegerField(db_index=True) - file_share = models.OneToOneField(FileShare) + file_share = models.OneToOneField(FileShare, on_delete=models.CASCADE) objects = OrgFileShareManager() - objects = OrgFileShareManager() class UploadLinkShareManager(models.Manager): def _get_upload_link_by_path(self, username, repo_id, path): diff --git a/seahub/tags/models.py b/seahub/tags/models.py index be80f45717..3f4a171cca 100644 --- a/seahub/tags/models.py +++ b/seahub/tags/models.py @@ -227,7 +227,7 @@ class Tags(models.Model): class FileTag(models.Model): uuid = models.ForeignKey(FileUUIDMap, on_delete=models.CASCADE) - tag = models.ForeignKey(Tags) + tag = models.ForeignKey(Tags, on_delete=models.CASCADE) username = LowerCaseCharField(max_length=255) objects = FileTagManager() diff --git a/seahub/test_utils.py b/seahub/test_utils.py index 988a53271e..89f75bd5db 100644 --- a/seahub/test_utils.py +++ b/seahub/test_utils.py @@ -4,7 +4,7 @@ import os from uuid import uuid4 from django.core.cache import cache -from django.core.urlresolvers import reverse +from django.urls import reverse from django.conf import settings from django.http import SimpleCookie from django.test import RequestFactory diff --git a/seahub/trusted_ip/middleware.py b/seahub/trusted_ip/middleware.py index 0d42ad7e27..4da9673eec 100644 --- a/seahub/trusted_ip/middleware.py +++ b/seahub/trusted_ip/middleware.py @@ -3,13 +3,14 @@ import json from django.http import HttpResponse from django.shortcuts import render_to_response +from django.utils.deprecation import MiddlewareMixin from seahub.utils.ip import get_remote_ip from seahub.trusted_ip.models import TrustedIP from seahub.settings import ENABLE_LIMIT_IPADDRESS, TRUSTED_IP_LIST -class LimitIpMiddleware(object): +class LimitIpMiddleware(MiddlewareMixin): def process_request(self, request): if not ENABLE_LIMIT_IPADDRESS: return None diff --git a/seahub/two_factor/gateways/twilio/gateway.py b/seahub/two_factor/gateways/twilio/gateway.py index dd9f47efcf..a17c6d4ae3 100644 --- a/seahub/two_factor/gateways/twilio/gateway.py +++ b/seahub/two_factor/gateways/twilio/gateway.py @@ -7,7 +7,7 @@ except ImportError: from urllib.parse import urlencode from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils import translation from django.utils.translation import ugettext, pgettext from twilio.rest import TwilioRestClient diff --git a/seahub/two_factor/middleware.py b/seahub/two_factor/middleware.py index d7142542ec..22763cbcc9 100644 --- a/seahub/two_factor/middleware.py +++ b/seahub/two_factor/middleware.py @@ -2,8 +2,9 @@ import re +from django.utils.deprecation import MiddlewareMixin from constance import config -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseRedirect from . import DEVICE_ID_SESSION_KEY @@ -21,7 +22,7 @@ class IsVerified(object): return (self.user.otp_device is not None) -class OTPMiddleware(object): +class OTPMiddleware(MiddlewareMixin): """ This must be installed after :class:`~django.contrib.auth.middleware.AuthenticationMiddleware` and @@ -61,7 +62,7 @@ class OTPMiddleware(object): return None -class ForceTwoFactorAuthMiddleware(object): +class ForceTwoFactorAuthMiddleware(MiddlewareMixin): def filter_request(self, request): path = request.path black_list = (r'^%s$' % SITE_ROOT, r'sys/.+', r'repo/.+', r'lib/', ) diff --git a/seahub/two_factor/models/static.py b/seahub/two_factor/models/static.py index a6f468fbb1..19f898e70c 100644 --- a/seahub/two_factor/models/static.py +++ b/seahub/two_factor/models/static.py @@ -60,7 +60,7 @@ class StaticToken(models.Model): *CharField*: A random string up to 16 characters. """ - device = models.ForeignKey(StaticDevice, related_name='token_set') + device = models.ForeignKey(StaticDevice, on_delete=models.CASCADE, related_name='token_set') token = models.CharField(max_length=16, db_index=True) @staticmethod diff --git a/seahub/two_factor/views/core.py b/seahub/two_factor/views/core.py index ea8a7cbb92..9134b2772e 100644 --- a/seahub/two_factor/views/core.py +++ b/seahub/two_factor/views/core.py @@ -6,7 +6,7 @@ from base64 import b32encode from constance import config from django.conf import settings from django.contrib.sites.shortcuts import get_current_site -from django.core.urlresolvers import reverse +from django.urls import reverse from django.forms import Form from django.http import HttpResponse, Http404, HttpResponseRedirect from django.shortcuts import redirect diff --git a/seahub/two_factor/views/login.py b/seahub/two_factor/views/login.py index 53c83532ac..a90c15c7c2 100644 --- a/seahub/two_factor/views/login.py +++ b/seahub/two_factor/views/login.py @@ -8,7 +8,7 @@ from importlib import import_module from constance import config from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseRedirect, Http404 from django.utils.translation import ugettext as _ from django.views.decorators.cache import never_cache @@ -106,7 +106,7 @@ class TwoFactorVerifyView(SessionWizardView): self.reset_two_factor_session() - if not is_safe_url(url=redirect_to, host=self.request.get_host()): + if not is_safe_url(url=redirect_to, allowed_hosts=self.request.get_host()): redirect_to = str(settings.LOGIN_REDIRECT_URL) res = HttpResponseRedirect(redirect_to) diff --git a/seahub/two_factor/views/mixins.py b/seahub/two_factor/views/mixins.py index 9f3bfd322f..56af1d6854 100644 --- a/seahub/two_factor/views/mixins.py +++ b/seahub/two_factor/views/mixins.py @@ -4,7 +4,7 @@ try: except ImportError: from urllib.parse import urlencode -from django.core.urlresolvers import reverse +from django.urls import reverse from django.template.response import TemplateResponse from seahub.auth import REDIRECT_FIELD_NAME from django.core.exceptions import PermissionDenied diff --git a/seahub/two_factor/views/profile.py b/seahub/two_factor/views/profile.py index f2b26a7c75..d0a5a34441 100644 --- a/seahub/two_factor/views/profile.py +++ b/seahub/two_factor/views/profile.py @@ -1,6 +1,6 @@ # Copyright (c) 2012-2016 Seafile Ltd. from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseRedirect from django.shortcuts import redirect from django.views.decorators.cache import never_cache diff --git a/seahub/two_factor/views/utils.py b/seahub/two_factor/views/utils.py index a306c53619..bb52940e48 100644 --- a/seahub/two_factor/views/utils.py +++ b/seahub/two_factor/views/utils.py @@ -5,7 +5,7 @@ from constance import config from django.core.exceptions import ValidationError from django.utils.decorators import method_decorator from django.utils.translation import ugettext as _ -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseRedirect try: diff --git a/seahub/urls.py b/seahub/urls.py index 34e976c261..05c4264a55 100644 --- a/seahub/urls.py +++ b/seahub/urls.py @@ -599,14 +599,14 @@ urlpatterns = [ url(r'^help/', include('seahub.help.urls')), url(r'^captcha/', include('captcha.urls')), url(r'^thumbnail/', include('seahub.thumbnail.urls')), - url(r'^inst/', include('seahub.institutions.urls', app_name='institutions', namespace='institutions')), - url(r'^invite/', include('seahub.invitations.urls', app_name='invitations', namespace='invitations')), + url(r'^inst/', include(('seahub.institutions.urls', 'institutions'), namespace='institutions')), + url(r'^invite/', include(('seahub.invitations.urls', 'invitations'), namespace='invitations')), url(r'^terms/', include('termsandconditions.urls')), - url(r'^published/', include('seahub.wiki.urls', app_name='wiki', namespace='wiki')), + url(r'^published/', include(('seahub.wiki.urls', 'wiki'), namespace='wiki')), url(r'^work-weixin/', include('seahub.work_weixin.urls')), url(r'^weixin/', include('seahub.weixin.urls')), # Must specify a namespace if specifying app_name. - url(r'^drafts/', include('seahub.drafts.urls', app_name='drafts', namespace='drafts')), + url(r'^drafts/', include(('seahub.drafts.urls', 'drafts'), namespace='drafts')), ## admin::address book url(r'^api/v2.1/admin/address-book/groups/$', AdminAddressBookGroups.as_view(), name='api-v2.1-admin-address-book-groups'), diff --git a/seahub/utils/__init__.py b/seahub/utils/__init__.py index 8787a92d93..076c289dcd 100644 --- a/seahub/utils/__init__.py +++ b/seahub/utils/__init__.py @@ -22,7 +22,7 @@ from constance import config import seaserv from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from django.core.mail import EmailMessage from django.shortcuts import render from django.template import Context, loader diff --git a/seahub/utils/urls.py b/seahub/utils/urls.py index 8f453ffca6..15d3723b1e 100644 --- a/seahub/utils/urls.py +++ b/seahub/utils/urls.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.utils import get_site_scheme_and_netloc diff --git a/seahub/views/__init__.py b/seahub/views/__init__.py index 279a45a4f4..acddf7a039 100644 --- a/seahub/views/__init__.py +++ b/seahub/views/__init__.py @@ -9,7 +9,7 @@ import logging import posixpath from django.core.cache import cache -from django.core.urlresolvers import reverse +from django.urls import reverse from django.contrib import messages from django.http import HttpResponse, Http404, \ HttpResponseRedirect diff --git a/seahub/views/ajax.py b/seahub/views/ajax.py index 54630cc8a5..4c244edd94 100644 --- a/seahub/views/ajax.py +++ b/seahub/views/ajax.py @@ -9,7 +9,7 @@ import csv import chardet import io -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponse, Http404 from django.template.loader import render_to_string from django.utils.http import urlquote diff --git a/seahub/views/file.py b/seahub/views/file.py index 005844ad4b..10477240fa 100644 --- a/seahub/views/file.py +++ b/seahub/views/file.py @@ -20,7 +20,7 @@ from django.core import signing from django.core.cache import cache from django.contrib.sites.shortcuts import get_current_site from django.contrib import messages -from django.core.urlresolvers import reverse +from django.urls import reverse from django.db.models import F from django.http import Http404, HttpResponseRedirect, HttpResponseBadRequest, HttpResponseForbidden from django.shortcuts import render diff --git a/seahub/views/repo.py b/seahub/views/repo.py index 3a7b76a023..403c69bc8f 100644 --- a/seahub/views/repo.py +++ b/seahub/views/repo.py @@ -4,7 +4,7 @@ import os import posixpath import logging -from django.core.urlresolvers import reverse +from django.urls import reverse from django.db.models import F from django.http import Http404, HttpResponseRedirect from django.shortcuts import render diff --git a/seahub/views/sso.py b/seahub/views/sso.py index d4a671f5d2..e7215c1562 100644 --- a/seahub/views/sso.py +++ b/seahub/views/sso.py @@ -1,6 +1,6 @@ # Copyright (c) 2012-2016 Seafile Ltd. from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseRedirect from django.utils.http import is_safe_url, urlquote @@ -10,7 +10,7 @@ def sso(request): # Ensure the user-originating redirection url is safe. if REDIRECT_FIELD_NAME in request.GET: next_page = request.GET[REDIRECT_FIELD_NAME] - if not is_safe_url(url=next_page, host=request.get_host()): + if not is_safe_url(url=next_page, allowed_hosts=request.get_host()): next_page = settings.LOGIN_REDIRECT_URL else: next_page = reverse('libraries') diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py index db4e15775e..cf58430e2e 100644 --- a/seahub/views/sysadmin.py +++ b/seahub/views/sysadmin.py @@ -14,7 +14,7 @@ from openpyxl import load_workbook from django.db.models import Q from django.conf import settings as dj_settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.contrib import messages from django.http import HttpResponse, Http404, HttpResponseRedirect, HttpResponseNotAllowed from django.shortcuts import render, get_object_or_404 diff --git a/seahub/weixin/views.py b/seahub/weixin/views.py index 4f54ddc9b6..6a88bc45d6 100644 --- a/seahub/weixin/views.py +++ b/seahub/weixin/views.py @@ -6,7 +6,7 @@ import logging import requests from django.http import HttpResponseRedirect -from django.core.urlresolvers import reverse +from django.urls import reverse from django.core.files.base import ContentFile from django.utils.translation import ugettext as _ diff --git a/seahub/wiki/models.py b/seahub/wiki/models.py index 59b4890182..6730d7b150 100644 --- a/seahub/wiki/models.py +++ b/seahub/wiki/models.py @@ -1,6 +1,6 @@ # Copyright (c) 2012-2016 Seafile Ltd. from django.db import models -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils import timezone from django.utils.translation import ugettext_lazy as _ from seaserv import seafile_api diff --git a/seahub/wiki/utils.py b/seahub/wiki/utils.py index 825879dce9..807180297b 100644 --- a/seahub/wiki/utils.py +++ b/seahub/wiki/utils.py @@ -7,7 +7,7 @@ import urllib.request, urllib.error, urllib.parse import logging import posixpath -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils.http import urlquote from django.utils.encoding import smart_str diff --git a/seahub/wiki/views.py b/seahub/wiki/views.py index 0c9497f554..dc08600bbc 100644 --- a/seahub/wiki/views.py +++ b/seahub/wiki/views.py @@ -5,7 +5,7 @@ import posixpath import seaserv from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import Http404, HttpResponseRedirect from django.shortcuts import render, get_object_or_404, redirect from django.utils.translation import ugettext as _ diff --git a/seahub/wopi/utils.py b/seahub/wopi/utils.py index a393fc5a98..64b22bfb66 100644 --- a/seahub/wopi/utils.py +++ b/seahub/wopi/utils.py @@ -18,7 +18,7 @@ except ImportError: from seaserv import seafile_api from django.core.cache import cache -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.utils import get_site_scheme_and_netloc from .settings import OFFICE_WEB_APP_BASE_URL, WOPI_ACCESS_TOKEN_EXPIRATION, \ diff --git a/seahub/work_weixin/views.py b/seahub/work_weixin/views.py index ffbaf13cdd..cd7969aa4e 100644 --- a/seahub/work_weixin/views.py +++ b/seahub/work_weixin/views.py @@ -22,7 +22,7 @@ from seahub.work_weixin.utils import work_weixin_oauth_check, get_work_weixin_ac handler_work_weixin_api_response, update_work_weixin_user_info from seahub.utils.auth import gen_user_virtual_id, VIRTUAL_ID_EMAIL_DOMAIN from seahub.auth.models import SocialAuthUser -from django.core.urlresolvers import reverse +from django.urls import reverse logger = logging.getLogger(__name__) diff --git a/tests/api/endpoints/admin/address_book/test_group.py b/tests/api/endpoints/admin/address_book/test_group.py index 62ef1c9ab7..bea9253568 100644 --- a/tests/api/endpoints/admin/address_book/test_group.py +++ b/tests/api/endpoints/admin/address_book/test_group.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import ccnet_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/admin/address_book/test_groups.py b/tests/api/endpoints/admin/address_book/test_groups.py index 5657d48626..252cc4abd1 100644 --- a/tests/api/endpoints/admin/address_book/test_groups.py +++ b/tests/api/endpoints/admin/address_book/test_groups.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import ccnet_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/admin/test_abuse_reports.py b/tests/api/endpoints/admin/test_abuse_reports.py index c1359ed0fe..c3b2f91ed5 100644 --- a/tests/api/endpoints/admin/test_abuse_reports.py +++ b/tests/api/endpoints/admin/test_abuse_reports.py @@ -2,7 +2,7 @@ import json from mock import patch, MagicMock -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.abuse_reports.models import AbuseReport diff --git a/tests/api/endpoints/admin/test_account.py b/tests/api/endpoints/admin/test_account.py index 6b942d5eb3..b73aaded44 100644 --- a/tests/api/endpoints/admin/test_account.py +++ b/tests/api/endpoints/admin/test_account.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse import seaserv from seaserv import seafile_api diff --git a/tests/api/endpoints/admin/test_admin_role.py b/tests/api/endpoints/admin/test_admin_role.py index f4dc25998d..0715c40562 100644 --- a/tests/api/endpoints/admin/test_admin_role.py +++ b/tests/api/endpoints/admin/test_admin_role.py @@ -3,7 +3,7 @@ import json from mock import patch from tests.common.utils import randstring -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.base.accounts import User from seahub.role_permissions.models import AdminRole diff --git a/tests/api/endpoints/admin/test_default_library.py b/tests/api/endpoints/admin/test_default_library.py index 4436b3e775..d541190799 100644 --- a/tests/api/endpoints/admin/test_default_library.py +++ b/tests/api/endpoints/admin/test_default_library.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.options.models import UserOptions from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/admin/test_device_errors.py b/tests/api/endpoints/admin/test_device_errors.py index aa26a5564d..38c49830be 100644 --- a/tests/api/endpoints/admin/test_device_errors.py +++ b/tests/api/endpoints/admin/test_device_errors.py @@ -1,5 +1,5 @@ from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase try: diff --git a/tests/api/endpoints/admin/test_device_trusted_ip.py b/tests/api/endpoints/admin/test_device_trusted_ip.py index 47ef753c46..2d460090ee 100644 --- a/tests/api/endpoints/admin/test_device_trusted_ip.py +++ b/tests/api/endpoints/admin/test_device_trusted_ip.py @@ -2,7 +2,7 @@ import json from functools import cmp_to_key from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.test_utils import BaseTestCase from seahub.trusted_ip.models import TrustedIP diff --git a/tests/api/endpoints/admin/test_devices.py b/tests/api/endpoints/admin/test_devices.py index bd3e6e64bd..3dcc22faf5 100644 --- a/tests/api/endpoints/admin/test_devices.py +++ b/tests/api/endpoints/admin/test_devices.py @@ -1,5 +1,5 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.api2.models import TokenV2 diff --git a/tests/api/endpoints/admin/test_favicon.py b/tests/api/endpoints/admin/test_favicon.py index 509c739f5d..c2f401a043 100644 --- a/tests/api/endpoints/admin/test_favicon.py +++ b/tests/api/endpoints/admin/test_favicon.py @@ -2,7 +2,7 @@ import os import json from tests.common.utils import urljoin from tests.common.common import BASE_URL -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.utils import PREVIEW_FILEEXT, get_service_url diff --git a/tests/api/endpoints/admin/test_file_audit_log.py b/tests/api/endpoints/admin/test_file_audit_log.py index 1855479824..bdec390963 100644 --- a/tests/api/endpoints/admin/test_file_audit_log.py +++ b/tests/api/endpoints/admin/test_file_audit_log.py @@ -2,7 +2,7 @@ import time import datetime from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase try: diff --git a/tests/api/endpoints/admin/test_file_update_log.py b/tests/api/endpoints/admin/test_file_update_log.py index 4271359514..29b2f37104 100644 --- a/tests/api/endpoints/admin/test_file_update_log.py +++ b/tests/api/endpoints/admin/test_file_update_log.py @@ -2,7 +2,7 @@ import time import datetime from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase try: diff --git a/tests/api/endpoints/admin/test_group_libraries.py b/tests/api/endpoints/admin/test_group_libraries.py index 5946fbecb7..f8aa7d5384 100644 --- a/tests/api/endpoints/admin/test_group_libraries.py +++ b/tests/api/endpoints/admin/test_group_libraries.py @@ -1,7 +1,7 @@ import json from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase class GroupLibrariesTest(BaseTestCase): diff --git a/tests/api/endpoints/admin/test_group_members.py b/tests/api/endpoints/admin/test_group_members.py index eeed8aba66..ff9d315382 100644 --- a/tests/api/endpoints/admin/test_group_members.py +++ b/tests/api/endpoints/admin/test_group_members.py @@ -1,7 +1,7 @@ import json from seaserv import ccnet_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase class GroupMembersTest(BaseTestCase): diff --git a/tests/api/endpoints/admin/test_groups.py b/tests/api/endpoints/admin/test_groups.py index 03469d27fc..c5cd08acd0 100644 --- a/tests/api/endpoints/admin/test_groups.py +++ b/tests/api/endpoints/admin/test_groups.py @@ -1,6 +1,6 @@ import json import random -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/admin/test_institution_users.py b/tests/api/endpoints/admin/test_institution_users.py index 8d46ed7043..784e95897f 100644 --- a/tests/api/endpoints/admin/test_institution_users.py +++ b/tests/api/endpoints/admin/test_institution_users.py @@ -1,7 +1,7 @@ import json import logging -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/admin/test_institutions.py b/tests/api/endpoints/admin/test_institutions.py index b2e9b2d330..a0dcc224a2 100644 --- a/tests/api/endpoints/admin/test_institutions.py +++ b/tests/api/endpoints/admin/test_institutions.py @@ -1,7 +1,7 @@ import json import logging -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/admin/test_invitations.py b/tests/api/endpoints/admin/test_invitations.py index 5de2060bb9..3ec7009ada 100644 --- a/tests/api/endpoints/admin/test_invitations.py +++ b/tests/api/endpoints/admin/test_invitations.py @@ -3,7 +3,7 @@ import json from mock import patch from django.utils import timezone -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/admin/test_libraries.py b/tests/api/endpoints/admin/test_libraries.py index b00a7efebe..9fbc8577fd 100644 --- a/tests/api/endpoints/admin/test_libraries.py +++ b/tests/api/endpoints/admin/test_libraries.py @@ -1,5 +1,5 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring from seahub.share.models import FileShare, UploadLinkShare diff --git a/tests/api/endpoints/admin/test_library_dirents.py b/tests/api/endpoints/admin/test_library_dirents.py index b77cac577c..f5ff0047e6 100644 --- a/tests/api/endpoints/admin/test_library_dirents.py +++ b/tests/api/endpoints/admin/test_library_dirents.py @@ -4,7 +4,7 @@ from mock import patch from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/admin/test_library_history.py b/tests/api/endpoints/admin/test_library_history.py index 8449db674c..1f25902fba 100644 --- a/tests/api/endpoints/admin/test_library_history.py +++ b/tests/api/endpoints/admin/test_library_history.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase class LibraryHistory(BaseTestCase): diff --git a/tests/api/endpoints/admin/test_license.py b/tests/api/endpoints/admin/test_license.py index cb0da9dc98..b58d7ba5a9 100644 --- a/tests/api/endpoints/admin/test_license.py +++ b/tests/api/endpoints/admin/test_license.py @@ -1,7 +1,7 @@ import os import json from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.api2.endpoints.admin import license as license_api from seahub.settings import LICENSE_PATH diff --git a/tests/api/endpoints/admin/test_login_bg_image.py b/tests/api/endpoints/admin/test_login_bg_image.py index f8984d9ba7..e74c2c1df6 100644 --- a/tests/api/endpoints/admin/test_login_bg_image.py +++ b/tests/api/endpoints/admin/test_login_bg_image.py @@ -2,7 +2,7 @@ import os import json from tests.common.utils import urljoin from tests.common.common import BASE_URL -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.settings import MEDIA_ROOT, CUSTOM_LOGIN_BG_PATH, MEDIA_URL diff --git a/tests/api/endpoints/admin/test_login_logs.py b/tests/api/endpoints/admin/test_login_logs.py index 5a8e8a53b7..d7d6c19b86 100644 --- a/tests/api/endpoints/admin/test_login_logs.py +++ b/tests/api/endpoints/admin/test_login_logs.py @@ -2,7 +2,7 @@ import json import time import datetime -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase try: diff --git a/tests/api/endpoints/admin/test_logo.py b/tests/api/endpoints/admin/test_logo.py index 19278acf13..3781119ea9 100644 --- a/tests/api/endpoints/admin/test_logo.py +++ b/tests/api/endpoints/admin/test_logo.py @@ -2,7 +2,7 @@ import os import json from tests.common.utils import urljoin from tests.common.common import BASE_URL -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.settings import MEDIA_ROOT, CUSTOM_LOGO_PATH, MEDIA_URL diff --git a/tests/api/endpoints/admin/test_logs.py b/tests/api/endpoints/admin/test_logs.py index 7165cdf7f2..abf998a57a 100644 --- a/tests/api/endpoints/admin/test_logs.py +++ b/tests/api/endpoints/admin/test_logs.py @@ -4,12 +4,12 @@ import datetime from mock import patch from seaserv import ccnet_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase try: diff --git a/tests/api/endpoints/admin/test_org_groups.py b/tests/api/endpoints/admin/test_org_groups.py index aa7536917d..60079ff910 100644 --- a/tests/api/endpoints/admin/test_org_groups.py +++ b/tests/api/endpoints/admin/test_org_groups.py @@ -2,7 +2,7 @@ import json from mock import patch from seaserv import ccnet_api, seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/admin/test_org_repos.py b/tests/api/endpoints/admin/test_org_repos.py index 62ffd16934..ce4db19a6b 100644 --- a/tests/api/endpoints/admin/test_org_repos.py +++ b/tests/api/endpoints/admin/test_org_repos.py @@ -2,7 +2,7 @@ import json from mock import patch from seaserv import ccnet_api, seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/admin/test_org_stats.py b/tests/api/endpoints/admin/test_org_stats.py index 2fb15f60aa..ca88913bb1 100644 --- a/tests/api/endpoints/admin/test_org_stats.py +++ b/tests/api/endpoints/admin/test_org_stats.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/admin/test_org_users.py b/tests/api/endpoints/admin/test_org_users.py index a2516942ce..cbf79b7d35 100644 --- a/tests/api/endpoints/admin/test_org_users.py +++ b/tests/api/endpoints/admin/test_org_users.py @@ -2,7 +2,7 @@ import json from mock import patch from seaserv import ccnet_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/admin/test_organizations.py b/tests/api/endpoints/admin/test_organizations.py index c15ade7ae1..241972ac34 100644 --- a/tests/api/endpoints/admin/test_organizations.py +++ b/tests/api/endpoints/admin/test_organizations.py @@ -4,7 +4,7 @@ import os import pytest from seaserv import ccnet_api -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/admin/test_perm_audit_log.py b/tests/api/endpoints/admin/test_perm_audit_log.py index ce088bdd23..07f4c43830 100644 --- a/tests/api/endpoints/admin/test_perm_audit_log.py +++ b/tests/api/endpoints/admin/test_perm_audit_log.py @@ -2,7 +2,7 @@ import time import datetime from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase try: diff --git a/tests/api/endpoints/admin/test_revision_tag.py b/tests/api/endpoints/admin/test_revision_tag.py index 3526753ee7..18254a5626 100644 --- a/tests/api/endpoints/admin/test_revision_tag.py +++ b/tests/api/endpoints/admin/test_revision_tag.py @@ -2,7 +2,7 @@ import os import json from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seaserv import seafile_api diff --git a/tests/api/endpoints/admin/test_share_links.py b/tests/api/endpoints/admin/test_share_links.py index 1938f86e99..e634bf3bca 100644 --- a/tests/api/endpoints/admin/test_share_links.py +++ b/tests/api/endpoints/admin/test_share_links.py @@ -2,7 +2,7 @@ import json from tests.common.utils import randstring -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.share.models import FileShare diff --git a/tests/api/endpoints/admin/test_shares.py b/tests/api/endpoints/admin/test_shares.py index c36ea4a059..f2d9f3be28 100644 --- a/tests/api/endpoints/admin/test_shares.py +++ b/tests/api/endpoints/admin/test_shares.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api diff --git a/tests/api/endpoints/admin/test_statistics.py b/tests/api/endpoints/admin/test_statistics.py index 9c8daf6875..a397bb9e9f 100644 --- a/tests/api/endpoints/admin/test_statistics.py +++ b/tests/api/endpoints/admin/test_statistics.py @@ -4,7 +4,7 @@ from datetime import date from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.utils.timeutils import datetime_to_isoformat_timestr diff --git a/tests/api/endpoints/admin/test_sysinfo.py b/tests/api/endpoints/admin/test_sysinfo.py index d151445fd9..7e87fa19bb 100644 --- a/tests/api/endpoints/admin/test_sysinfo.py +++ b/tests/api/endpoints/admin/test_sysinfo.py @@ -2,7 +2,7 @@ import json from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase class SysinfoTest(BaseTestCase): diff --git a/tests/api/endpoints/admin/test_system_library.py b/tests/api/endpoints/admin/test_system_library.py index fdcfe3e1fe..ee454f7fdd 100644 --- a/tests/api/endpoints/admin/test_system_library.py +++ b/tests/api/endpoints/admin/test_system_library.py @@ -2,7 +2,7 @@ import json from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import upload_file_test diff --git a/tests/api/endpoints/admin/test_terms_and_conditions.py b/tests/api/endpoints/admin/test_terms_and_conditions.py index 90cff899dc..43b066c255 100644 --- a/tests/api/endpoints/admin/test_terms_and_conditions.py +++ b/tests/api/endpoints/admin/test_terms_and_conditions.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from termsandconditions.models import TermsAndConditions, UserTermsAndConditions diff --git a/tests/api/endpoints/admin/test_two_factor_auth.py b/tests/api/endpoints/admin/test_two_factor_auth.py index e21e21f49d..1d8628fbeb 100644 --- a/tests/api/endpoints/admin/test_two_factor_auth.py +++ b/tests/api/endpoints/admin/test_two_factor_auth.py @@ -1,6 +1,6 @@ import os import pytest -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.options.models import (UserOptions, KEY_FORCE_2FA, VAL_FORCE_2FA) from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/admin/test_upload_links.py b/tests/api/endpoints/admin/test_upload_links.py index 5598f63d30..f838b03a3f 100644 --- a/tests/api/endpoints/admin/test_upload_links.py +++ b/tests/api/endpoints/admin/test_upload_links.py @@ -2,7 +2,7 @@ import json from tests.common.utils import randstring, upload_file_test -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.share.models import UploadLinkShare diff --git a/tests/api/endpoints/admin/test_users.py b/tests/api/endpoints/admin/test_users.py index 402f6925ea..d82d3e39f3 100644 --- a/tests/api/endpoints/admin/test_users.py +++ b/tests/api/endpoints/admin/test_users.py @@ -3,7 +3,7 @@ import json from seaserv import ccnet_api, seafile_api from tests.common.utils import randstring -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.constants import DEFAULT_USER, GUEST_USER from seahub.test_utils import BaseTestCase from seahub.base.templatetags.seahub_tags import email2nickname, \ diff --git a/tests/api/endpoints/admin/test_web_settings.py b/tests/api/endpoints/admin/test_web_settings.py index 6839b86a30..c8154639cb 100644 --- a/tests/api/endpoints/admin/test_web_settings.py +++ b/tests/api/endpoints/admin/test_web_settings.py @@ -1,5 +1,5 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_abuse_reports.py b/tests/api/endpoints/test_abuse_reports.py index 0ff14c7815..3c164459d3 100644 --- a/tests/api/endpoints/test_abuse_reports.py +++ b/tests/api/endpoints/test_abuse_reports.py @@ -2,7 +2,7 @@ import json from mock import patch, MagicMock -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.share.models import FileShare diff --git a/tests/api/endpoints/test_deleted_repos.py b/tests/api/endpoints/test_deleted_repos.py index cdf778b29e..8978f2b85d 100644 --- a/tests/api/endpoints/test_deleted_repos.py +++ b/tests/api/endpoints/test_deleted_repos.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_dir_view.py b/tests/api/endpoints/test_dir_view.py index 3856eb25a4..ef88cc82a1 100644 --- a/tests/api/endpoints/test_dir_view.py +++ b/tests/api/endpoints/test_dir_view.py @@ -5,7 +5,7 @@ import posixpath from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.utils import check_filename_with_rename diff --git a/tests/api/endpoints/test_drafts.py b/tests/api/endpoints/test_drafts.py index 9549689587..b4442ecc84 100644 --- a/tests/api/endpoints/test_drafts.py +++ b/tests/api/endpoints/test_drafts.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.drafts.models import Draft diff --git a/tests/api/endpoints/test_file_comment.py b/tests/api/endpoints/test_file_comment.py index 495bf85d34..70a858167a 100644 --- a/tests/api/endpoints/test_file_comment.py +++ b/tests/api/endpoints/test_file_comment.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.base.models import FileComment from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_file_comments.py b/tests/api/endpoints/test_file_comments.py index c07dad3ebb..509b606d25 100644 --- a/tests/api/endpoints/test_file_comments.py +++ b/tests/api/endpoints/test_file_comments.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse import seaserv from seaserv import seafile_api, ccnet_api diff --git a/tests/api/endpoints/test_file_comments_counts.py b/tests/api/endpoints/test_file_comments_counts.py index ba3223492d..07eebe2f92 100644 --- a/tests/api/endpoints/test_file_comments_counts.py +++ b/tests/api/endpoints/test_file_comments_counts.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.base.models import FileComment from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_file_history.py b/tests/api/endpoints/test_file_history.py index ff962f84a0..135a50e675 100644 --- a/tests/api/endpoints/test_file_history.py +++ b/tests/api/endpoints/test_file_history.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/test_file_participants.py b/tests/api/endpoints/test_file_participants.py index 59787ae653..a50f399705 100644 --- a/tests/api/endpoints/test_file_participants.py +++ b/tests/api/endpoints/test_file_participants.py @@ -1,7 +1,7 @@ import json from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.file_participants.models import FileParticipant from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/test_file_tag.py b/tests/api/endpoints/test_file_tag.py index 04e4d58acc..719313be29 100644 --- a/tests/api/endpoints/test_file_tag.py +++ b/tests/api/endpoints/test_file_tag.py @@ -2,7 +2,7 @@ import os import json -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test.client import encode_multipart from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_file_view.py b/tests/api/endpoints/test_file_view.py index f42f7d2ad5..8c8cdd8705 100644 --- a/tests/api/endpoints/test_file_view.py +++ b/tests/api/endpoints/test_file_view.py @@ -5,7 +5,7 @@ import posixpath from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.utils import check_filename_with_rename diff --git a/tests/api/endpoints/test_group_libraries.py b/tests/api/endpoints/test_group_libraries.py index 9eaec48fb7..3ad7d7a63b 100644 --- a/tests/api/endpoints/test_group_libraries.py +++ b/tests/api/endpoints/test_group_libraries.py @@ -1,7 +1,7 @@ import json import pytest -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api, ccnet_api diff --git a/tests/api/endpoints/test_group_members.py b/tests/api/endpoints/test_group_members.py index a0bd54adac..03d8af898c 100644 --- a/tests/api/endpoints/test_group_members.py +++ b/tests/api/endpoints/test_group_members.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.notifications.models import UserNotification from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_groups.py b/tests/api/endpoints/test_groups.py index 5406ddbf3f..7c9675054c 100644 --- a/tests/api/endpoints/test_groups.py +++ b/tests/api/endpoints/test_groups.py @@ -3,7 +3,7 @@ import json from mock import patch import random -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_invitation.py b/tests/api/endpoints/test_invitation.py index a448c63b97..fe86b87d3f 100644 --- a/tests/api/endpoints/test_invitation.py +++ b/tests/api/endpoints/test_invitation.py @@ -7,7 +7,7 @@ from seahub.test_utils import BaseTestCase from seahub.api2.permissions import CanInviteGuest from tests.common.utils import randstring from seahub.base.accounts import User -from django.core.urlresolvers import reverse +from django.urls import reverse class InvitationsTest(BaseTestCase): diff --git a/tests/api/endpoints/test_query_zip_progress.py b/tests/api/endpoints/test_query_zip_progress.py index 14e5bb4e5d..ecf0697346 100644 --- a/tests/api/endpoints/test_query_zip_progress.py +++ b/tests/api/endpoints/test_query_zip_progress.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_repo_api_tokens.py b/tests/api/endpoints/test_repo_api_tokens.py index c6fca00661..6d563261ca 100644 --- a/tests/api/endpoints/test_repo_api_tokens.py +++ b/tests/api/endpoints/test_repo_api_tokens.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.repo_api_tokens.models import RepoAPITokens from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_repo_commit_dir.py b/tests/api/endpoints/test_repo_commit_dir.py index 82f7706516..da8f4d1974 100644 --- a/tests/api/endpoints/test_repo_commit_dir.py +++ b/tests/api/endpoints/test_repo_commit_dir.py @@ -1,7 +1,7 @@ import os import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_repo_commit_revert.py b/tests/api/endpoints/test_repo_commit_revert.py index 9426f27daf..6697670533 100644 --- a/tests/api/endpoints/test_repo_commit_revert.py +++ b/tests/api/endpoints/test_repo_commit_revert.py @@ -1,7 +1,7 @@ import os import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_repo_history.py b/tests/api/endpoints/test_repo_history.py index 8da8dae397..d7a1905a0a 100644 --- a/tests/api/endpoints/test_repo_history.py +++ b/tests/api/endpoints/test_repo_history.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_repo_related_users.py b/tests/api/endpoints/test_repo_related_users.py index c77dc80d47..02441f6a95 100644 --- a/tests/api/endpoints/test_repo_related_users.py +++ b/tests/api/endpoints/test_repo_related_users.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api, ccnet_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_repo_set_password.py b/tests/api/endpoints/test_repo_set_password.py index 060b2cbd68..85a197cebc 100644 --- a/tests/api/endpoints/test_repo_set_password.py +++ b/tests/api/endpoints/test_repo_set_password.py @@ -1,6 +1,6 @@ #coding: UTF-8 import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_repo_share_invitation.py b/tests/api/endpoints/test_repo_share_invitation.py index 9871d99f64..20c159c4da 100644 --- a/tests/api/endpoints/test_repo_share_invitation.py +++ b/tests/api/endpoints/test_repo_share_invitation.py @@ -7,7 +7,7 @@ from seahub.test_utils import BaseTestCase from seahub.api2.permissions import CanInviteGuest from tests.common.utils import randstring from seahub.base.accounts import User -from django.core.urlresolvers import reverse +from django.urls import reverse class InvitationsTest(BaseTestCase): diff --git a/tests/api/endpoints/test_repo_share_invitations.py b/tests/api/endpoints/test_repo_share_invitations.py index 99408d7a58..4e1fb362b6 100644 --- a/tests/api/endpoints/test_repo_share_invitations.py +++ b/tests/api/endpoints/test_repo_share_invitations.py @@ -4,7 +4,7 @@ from mock import patch from django.test import override_settings from post_office.models import Email -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.base.accounts import UserPermissions from seahub.invitations.models import Invitation, RepoShareInvitation from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_repo_trash.py b/tests/api/endpoints/test_repo_trash.py index ed525e879e..0fa97732b3 100644 --- a/tests/api/endpoints/test_repo_trash.py +++ b/tests/api/endpoints/test_repo_trash.py @@ -1,7 +1,7 @@ import os import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api, ccnet_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_repos.py b/tests/api/endpoints/test_repos.py index c12b17be08..af4979843f 100644 --- a/tests/api/endpoints/test_repos.py +++ b/tests/api/endpoints/test_repos.py @@ -1,5 +1,5 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.test_utils import BaseTestCase from seahub.base.templatetags.seahub_tags import email2nickname, \ diff --git a/tests/api/endpoints/test_repos_batch.py b/tests/api/endpoints/test_repos_batch.py index 21df976621..ad3ee8c3e6 100644 --- a/tests/api/endpoints/test_repos_batch.py +++ b/tests/api/endpoints/test_repos_batch.py @@ -2,7 +2,7 @@ import os import json import posixpath from seaserv import seafile_api, ccnet_api -from django.core.urlresolvers import reverse +from django.urls import reverse from tests.common.utils import randstring from seahub.test_utils import BaseTestCase from seahub.utils import normalize_dir_path diff --git a/tests/api/endpoints/test_revision_tag.py b/tests/api/endpoints/test_revision_tag.py index b788486d9a..6ef7c218bc 100644 --- a/tests/api/endpoints/test_revision_tag.py +++ b/tests/api/endpoints/test_revision_tag.py @@ -2,7 +2,7 @@ import os import json from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seaserv import seafile_api diff --git a/tests/api/endpoints/test_search_group.py b/tests/api/endpoints/test_search_group.py index 4aed8aa424..060dbaaea7 100644 --- a/tests/api/endpoints/test_search_group.py +++ b/tests/api/endpoints/test_search_group.py @@ -3,7 +3,7 @@ import json from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_search_user.py b/tests/api/endpoints/test_search_user.py index 64fe24596d..e4fd1a0cdd 100644 --- a/tests/api/endpoints/test_search_user.py +++ b/tests/api/endpoints/test_search_user.py @@ -1,7 +1,7 @@ import json from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.contacts.models import Contact diff --git a/tests/api/endpoints/test_send_share_link.py b/tests/api/endpoints/test_send_share_link.py index 1f8fbf3637..d9dbf17924 100644 --- a/tests/api/endpoints/test_send_share_link.py +++ b/tests/api/endpoints/test_send_share_link.py @@ -2,7 +2,7 @@ import json from mock import patch from django.core import mail -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.utils import IS_EMAIL_CONFIGURED diff --git a/tests/api/endpoints/test_send_upload_link.py b/tests/api/endpoints/test_send_upload_link.py index 456459ae6c..e12f98f9ed 100644 --- a/tests/api/endpoints/test_send_upload_link.py +++ b/tests/api/endpoints/test_send_upload_link.py @@ -2,7 +2,7 @@ import json from mock import patch from django.core import mail -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.utils import IS_EMAIL_CONFIGURED diff --git a/tests/api/endpoints/test_share_link_zip_task.py b/tests/api/endpoints/test_share_link_zip_task.py index 27a78fd15b..c258054050 100644 --- a/tests/api/endpoints/test_share_link_zip_task.py +++ b/tests/api/endpoints/test_share_link_zip_task.py @@ -2,7 +2,7 @@ import json from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.share.models import FileShare diff --git a/tests/api/endpoints/test_share_links.py b/tests/api/endpoints/test_share_links.py index d7fe686a0c..195fce31a5 100644 --- a/tests/api/endpoints/test_share_links.py +++ b/tests/api/endpoints/test_share_links.py @@ -2,7 +2,7 @@ import json from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.share.models import FileShare diff --git a/tests/api/endpoints/test_shareable_groups.py b/tests/api/endpoints/test_shareable_groups.py index fc1a3f2d78..8ef504f1ee 100644 --- a/tests/api/endpoints/test_shareable_groups.py +++ b/tests/api/endpoints/test_shareable_groups.py @@ -4,7 +4,7 @@ import json import pytest pytestmark = pytest.mark.django_db -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring diff --git a/tests/api/endpoints/test_shared_folders.py b/tests/api/endpoints/test_shared_folders.py index 6e844f8b39..cf4586ac2f 100644 --- a/tests/api/endpoints/test_shared_folders.py +++ b/tests/api/endpoints/test_shared_folders.py @@ -1,7 +1,7 @@ import os import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api diff --git a/tests/api/endpoints/test_shared_repos.py b/tests/api/endpoints/test_shared_repos.py index ba7ab60930..ead33baa90 100644 --- a/tests/api/endpoints/test_shared_repos.py +++ b/tests/api/endpoints/test_shared_repos.py @@ -1,7 +1,7 @@ import json import pytest -from django.core.urlresolvers import reverse +from django.urls import reverse import seaserv from seaserv import seafile_api diff --git a/tests/api/endpoints/test_smart_link.py b/tests/api/endpoints/test_smart_link.py index 7e5e3415d9..3f37a952b6 100644 --- a/tests/api/endpoints/test_smart_link.py +++ b/tests/api/endpoints/test_smart_link.py @@ -2,7 +2,7 @@ import json import uuid -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_starred_items.py b/tests/api/endpoints/test_starred_items.py index e7ac0842f4..701488d118 100644 --- a/tests/api/endpoints/test_starred_items.py +++ b/tests/api/endpoints/test_starred_items.py @@ -1,7 +1,7 @@ import json from tests.common.utils import randstring -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.base.models import UserStarredFiles from seahub.utils.star import is_file_starred diff --git a/tests/api/endpoints/test_upload_links.py b/tests/api/endpoints/test_upload_links.py index 3007eed076..9bcc86392d 100644 --- a/tests/api/endpoints/test_upload_links.py +++ b/tests/api/endpoints/test_upload_links.py @@ -4,7 +4,7 @@ from mock import patch from dateutil.relativedelta import relativedelta from django.utils import timezone -from django.core.urlresolvers import reverse +from django.urls import reverse from tests.common.utils import upload_file_test, randstring diff --git a/tests/api/endpoints/test_user.py b/tests/api/endpoints/test_user.py index ab63ee5172..fc5af285c3 100644 --- a/tests/api/endpoints/test_user.py +++ b/tests/api/endpoints/test_user.py @@ -3,7 +3,7 @@ import random import string from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.base.templatetags.seahub_tags import email2nickname, \ diff --git a/tests/api/endpoints/test_user_avatar.py b/tests/api/endpoints/test_user_avatar.py index 3a37d6d2eb..487b2da344 100644 --- a/tests/api/endpoints/test_user_avatar.py +++ b/tests/api/endpoints/test_user_avatar.py @@ -4,7 +4,7 @@ from tests.api.apitestbase import ApiTestBase from tests.api.urls import AVATAR_BASE_URL from tests.common.utils import urljoin from tests.common.common import BASE_URL -from django.core.urlresolvers import reverse +from django.urls import reverse class AvatarApiTest(ApiTestBase): diff --git a/tests/api/endpoints/test_via_repo_token.py b/tests/api/endpoints/test_via_repo_token.py index 617dab366b..a20a7a0442 100644 --- a/tests/api/endpoints/test_via_repo_token.py +++ b/tests/api/endpoints/test_via_repo_token.py @@ -6,7 +6,7 @@ import os import json import uuid -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.repo_api_tokens.models import RepoAPITokens from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_webdav_secret.py b/tests/api/endpoints/test_webdav_secret.py index 3bbd2d6e1d..295cbfe2d8 100644 --- a/tests/api/endpoints/test_webdav_secret.py +++ b/tests/api/endpoints/test_webdav_secret.py @@ -1,5 +1,5 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.test_utils import BaseTestCase diff --git a/tests/api/endpoints/test_wikis.py b/tests/api/endpoints/test_wikis.py index 4745406dfc..8ef7978ad3 100644 --- a/tests/api/endpoints/test_wikis.py +++ b/tests/api/endpoints/test_wikis.py @@ -2,7 +2,7 @@ import json import copy from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings import seaserv diff --git a/tests/api/endpoints/test_zip_task.py b/tests/api/endpoints/test_zip_task.py index bdc05dc531..052c63fc49 100644 --- a/tests/api/endpoints/test_zip_task.py +++ b/tests/api/endpoints/test_zip_task.py @@ -2,7 +2,7 @@ import os import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/api/test_default_repo.py b/tests/api/test_default_repo.py index 202f1d794b..d96ae24f81 100644 --- a/tests/api/test_default_repo.py +++ b/tests/api/test_default_repo.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.options.models import UserOptions from seahub.test_utils import BaseTestCase diff --git a/tests/api/test_devices.py b/tests/api/test_devices.py index 0f74dee705..cd6ffffd93 100644 --- a/tests/api/test_devices.py +++ b/tests/api/test_devices.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.api2.models import TokenV2 from seahub.test_utils import BaseTestCase, Fixtures diff --git a/tests/api/test_dir.py b/tests/api/test_dir.py index 3dc0e1bf08..328d6a734e 100644 --- a/tests/api/test_dir.py +++ b/tests/api/test_dir.py @@ -2,7 +2,7 @@ import json import os import time -from django.core.urlresolvers import reverse +from django.urls import reverse from django.core.cache import cache from seahub.test_utils import BaseTestCase diff --git a/tests/api/test_dir_revert.py b/tests/api/test_dir_revert.py index 2083f42a4b..c95ece49f3 100644 --- a/tests/api/test_dir_revert.py +++ b/tests/api/test_dir_revert.py @@ -1,7 +1,7 @@ import os import json from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase class DirRevertTest(BaseTestCase): diff --git a/tests/api/test_dir_sub_repo.py b/tests/api/test_dir_sub_repo.py index 5efb02e410..fe2fccecad 100644 --- a/tests/api/test_dir_sub_repo.py +++ b/tests/api/test_dir_sub_repo.py @@ -1,6 +1,6 @@ import os import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.test_utils import BaseTestCase diff --git a/tests/api/test_file_ops.py b/tests/api/test_file_ops.py index 27ddc31bd4..116bcb7ff6 100644 --- a/tests/api/test_file_ops.py +++ b/tests/api/test_file_ops.py @@ -4,7 +4,7 @@ import json from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.utils import check_filename_with_rename diff --git a/tests/api/test_file_revert.py b/tests/api/test_file_revert.py index 96c0092c0f..613bdc53cf 100644 --- a/tests/api/test_file_revert.py +++ b/tests/api/test_file_revert.py @@ -1,7 +1,7 @@ import os import json from seaserv import seafile_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase class FileRevertTest(BaseTestCase): diff --git a/tests/api/test_repo.py b/tests/api/test_repo.py index a25a492b5e..150894a041 100644 --- a/tests/api/test_repo.py +++ b/tests/api/test_repo.py @@ -6,7 +6,7 @@ from mock import patch import pytest pytestmark = pytest.mark.django_db -from django.core.urlresolvers import reverse +from django.urls import reverse from django.template.defaultfilters import filesizeformat from seaserv import seafile_api diff --git a/tests/api/test_repo_group_folder_perm.py b/tests/api/test_repo_group_folder_perm.py index c804c16333..e7b675c63b 100644 --- a/tests/api/test_repo_group_folder_perm.py +++ b/tests/api/test_repo_group_folder_perm.py @@ -2,7 +2,7 @@ """ import json from tests.common.utils import randstring -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.test_utils import BaseTestCase try: diff --git a/tests/api/test_repo_history_limit.py b/tests/api/test_repo_history_limit.py index a96a31bb7a..f576a21f93 100644 --- a/tests/api/test_repo_history_limit.py +++ b/tests/api/test_repo_history_limit.py @@ -5,7 +5,7 @@ import json import pytest from seaserv import seafile_api, ccnet_api -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from tests.common.utils import randstring from seahub.group.utils import is_group_admin diff --git a/tests/api/test_repo_owner.py b/tests/api/test_repo_owner.py index 6b9f8d57a0..6623412262 100644 --- a/tests/api/test_repo_owner.py +++ b/tests/api/test_repo_owner.py @@ -1,7 +1,7 @@ """seahub/api2/views.py::Repo api tests. """ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.base.accounts import User diff --git a/tests/api/test_repo_shared_links.py b/tests/api/test_repo_shared_links.py index 3e397cff7f..8e5d38eb82 100644 --- a/tests/api/test_repo_shared_links.py +++ b/tests/api/test_repo_shared_links.py @@ -1,7 +1,7 @@ """seahub/api2/views.py::Repo api tests. """ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.share.models import UploadLinkShare, FileShare diff --git a/tests/api/test_repo_tokens.py b/tests/api/test_repo_tokens.py index 10e3c634e0..0c5d723fd6 100644 --- a/tests/api/test_repo_tokens.py +++ b/tests/api/test_repo_tokens.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from tests.api.apitestbase import ApiTestBase from tests.common.utils import apiurl diff --git a/tests/api/test_repo_user_folder_perm.py b/tests/api/test_repo_user_folder_perm.py index ba469b8e64..3f3de59336 100644 --- a/tests/api/test_repo_user_folder_perm.py +++ b/tests/api/test_repo_user_folder_perm.py @@ -2,7 +2,7 @@ """ import json from tests.common.utils import randstring -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from seahub.test_utils import BaseTestCase try: diff --git a/tests/api/test_repos.py b/tests/api/test_repos.py index c0ef66c3bd..085edfa3d3 100644 --- a/tests/api/test_repos.py +++ b/tests/api/test_repos.py @@ -9,7 +9,7 @@ import uuid import pytest pytestmark = pytest.mark.django_db -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api from tests.api.apitestbase import ApiTestBase diff --git a/tests/api/test_search.py b/tests/api/test_search.py index 4546f6e104..35a96c1d76 100644 --- a/tests/api/test_search.py +++ b/tests/api/test_search.py @@ -2,7 +2,7 @@ import json import pytest from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase, TRAVIS diff --git a/tests/api/test_starredfiles.py b/tests/api/test_starredfiles.py index 3e9022101e..43e6d26492 100644 --- a/tests/api/test_starredfiles.py +++ b/tests/api/test_starredfiles.py @@ -2,7 +2,7 @@ import json import urllib.request, urllib.error, urllib.parse -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.base.models import UserStarredFiles from seahub.test_utils import BaseTestCase, Fixtures diff --git a/tests/api/test_throttings.py b/tests/api/test_throttings.py index 8bebeae7a4..ebd62ad2d2 100644 --- a/tests/api/test_throttings.py +++ b/tests/api/test_throttings.py @@ -1,7 +1,7 @@ from mock import patch import time -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.api2.throttling import SimpleRateThrottle diff --git a/tests/api/views/test_account_info.py b/tests/api/views/test_account_info.py index 220d91b6d1..67e7f8f70e 100644 --- a/tests/api/views/test_account_info.py +++ b/tests/api/views/test_account_info.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse import seaserv from seaserv import seafile_api diff --git a/tests/api/views/test_default_repo.py b/tests/api/views/test_default_repo.py index 0015df8ad2..5120a9194f 100644 --- a/tests/api/views/test_default_repo.py +++ b/tests/api/views/test_default_repo.py @@ -1,5 +1,5 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/auth/views/test_login.py b/tests/seahub/auth/views/test_login.py index 7969474b19..8f321c053b 100644 --- a/tests/seahub/auth/views/test_login.py +++ b/tests/seahub/auth/views/test_login.py @@ -1,6 +1,6 @@ from django.conf import settings from django.core.cache import cache -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils.http import urlquote import pytest diff --git a/tests/seahub/auth/views/test_logout.py b/tests/seahub/auth/views/test_logout.py index fcdb19c828..f012acfc11 100644 --- a/tests/seahub/auth/views/test_logout.py +++ b/tests/seahub/auth/views/test_logout.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/auth/views/test_password_change.py b/tests/seahub/auth/views/test_password_change.py index 5e5ea9768c..2bf90bddd2 100644 --- a/tests/seahub/auth/views/test_password_change.py +++ b/tests/seahub/auth/views/test_password_change.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/base/test_accounts.py b/tests/seahub/base/test_accounts.py index c508952f6a..ee1c373492 100644 --- a/tests/seahub/base/test_accounts.py +++ b/tests/seahub/base/test_accounts.py @@ -5,7 +5,7 @@ from seahub.base.accounts import User, RegistrationForm from seahub.options.models import UserOptions from seahub.role_permissions.settings import ENABLED_ROLE_PERMISSIONS from post_office.models import Email -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from mock import patch diff --git a/tests/seahub/drafts/test_models.py b/tests/seahub/drafts/test_models.py index ae0ec57c77..27f7d712ad 100644 --- a/tests/seahub/drafts/test_models.py +++ b/tests/seahub/drafts/test_models.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.drafts.models import Draft from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/group/views/test_group_discuss.py b/tests/seahub/group/views/test_group_discuss.py index 55b8167bdd..b187b7766a 100644 --- a/tests/seahub/group/views/test_group_discuss.py +++ b/tests/seahub/group/views/test_group_discuss.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.constants import HASH_URLS diff --git a/tests/seahub/institutions/test_views.py b/tests/seahub/institutions/test_views.py index 60a41cb0d8..834ca4ab9d 100644 --- a/tests/seahub/institutions/test_views.py +++ b/tests/seahub/institutions/test_views.py @@ -1,6 +1,6 @@ from django.core import mail from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.base.accounts import User @@ -9,7 +9,7 @@ from seahub.institutions.utils import is_institution_admin from seahub.profile.models import Profile from seahub.test_utils import BaseTestCase -settings.MIDDLEWARE_CLASSES += ( +settings.MIDDLEWARE.append( 'seahub.institutions.middleware.InstitutionMiddleware', ) @@ -33,7 +33,7 @@ class InstTestBase(BaseTestCase): class InfoTest(InstTestBase): @override_settings( - MIDDLEWARE_CLASSES=settings.MIDDLEWARE_CLASSES, + MIDDLEWARE=settings.MIDDLEWARE, MULTI_INSTITUTION=True ) def test_can_render(self): @@ -46,7 +46,7 @@ class InfoTest(InstTestBase): class UseradminTest(InstTestBase): @override_settings( - MIDDLEWARE_CLASSES=settings.MIDDLEWARE_CLASSES, + MIDDLEWARE=settings.MIDDLEWARE, MULTI_INSTITUTION=True ) def test_can_list(self): @@ -59,7 +59,7 @@ class UseradminTest(InstTestBase): class UseradminSearchTest(InstTestBase): @override_settings( - MIDDLEWARE_CLASSES=settings.MIDDLEWARE_CLASSES, + MIDDLEWARE=settings.MIDDLEWARE, MULTI_INSTITUTION=True ) def test_can_search(self): @@ -73,7 +73,7 @@ class UseradminSearchTest(InstTestBase): class UserToggleStatusTest(InstTestBase): @override_settings( - MIDDLEWARE_CLASSES=settings.MIDDLEWARE_CLASSES, + MIDDLEWARE=settings.MIDDLEWARE, MULTI_INSTITUTION=True ) def test_can_activate(self): @@ -95,7 +95,7 @@ class UserToggleStatusTest(InstTestBase): self.assertEqual(len(mail.outbox), 1) @override_settings( - MIDDLEWARE_CLASSES=settings.MIDDLEWARE_CLASSES, + MIDDLEWARE=settings.MIDDLEWARE, MULTI_INSTITUTION=True ) def test_can_deactivate(self): @@ -117,7 +117,7 @@ class UserToggleStatusTest(InstTestBase): class UserIsAdminTest(InstTestBase): @override_settings( - MIDDLEWARE_CLASSES=settings.MIDDLEWARE_CLASSES, + MIDDLEWARE=settings.MIDDLEWARE, MULTI_INSTITUTION=True ) diff --git a/tests/seahub/invitations/test_views.py b/tests/seahub/invitations/test_views.py index 4db1943f05..b33ea1323a 100644 --- a/tests/seahub/invitations/test_views.py +++ b/tests/seahub/invitations/test_views.py @@ -1,7 +1,7 @@ import json from django.utils import timezone -from django.core.urlresolvers import reverse +from django.urls import reverse from django.core import mail from django.test import override_settings diff --git a/tests/seahub/profile/views/test_edit_profile.py b/tests/seahub/profile/views/test_edit_profile.py index d77fd6b3ba..d84a4a79c7 100644 --- a/tests/seahub/profile/views/test_edit_profile.py +++ b/tests/seahub/profile/views/test_edit_profile.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.base.templatetags.seahub_tags import email2nickname from seahub.profile.models import Profile diff --git a/tests/seahub/profile/views/test_profile.py b/tests/seahub/profile/views/test_profile.py index cfa60fdd12..ddd7b989d6 100644 --- a/tests/seahub/profile/views/test_profile.py +++ b/tests/seahub/profile/views/test_profile.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/share/views/test_send_shared_link.py b/tests/seahub/share/views/test_send_shared_link.py index c265c94306..b4e01cbdf3 100644 --- a/tests/seahub/share/views/test_send_shared_link.py +++ b/tests/seahub/share/views/test_send_shared_link.py @@ -1,6 +1,6 @@ from mock import patch from django.core import mail -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.profile.models import Profile diff --git a/tests/seahub/share/views/test_send_shared_upload_link.py b/tests/seahub/share/views/test_send_shared_upload_link.py index 6387990779..fb47a330df 100644 --- a/tests/seahub/share/views/test_send_shared_upload_link.py +++ b/tests/seahub/share/views/test_send_shared_upload_link.py @@ -1,6 +1,6 @@ from mock import patch from django.core import mail -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.profile.models import Profile diff --git a/tests/seahub/test_accounts.py b/tests/seahub/test_accounts.py index 127341b26c..a94ffabe00 100644 --- a/tests/seahub/test_accounts.py +++ b/tests/seahub/test_accounts.py @@ -1,5 +1,5 @@ from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import TestCase from django.utils.html import escape diff --git a/tests/seahub/thirdpart/registration/test_models.py b/tests/seahub/thirdpart/registration/test_models.py index 7a92bd03a9..dd25ae3988 100644 --- a/tests/seahub/thirdpart/registration/test_models.py +++ b/tests/seahub/thirdpart/registration/test_models.py @@ -1,5 +1,5 @@ from django.core import mail -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings import pytest diff --git a/tests/seahub/thirdpart/shibboleth/test_backends.py b/tests/seahub/thirdpart/shibboleth/test_backends.py index 6aa5ac8dee..e639bf0c24 100644 --- a/tests/seahub/thirdpart/shibboleth/test_backends.py +++ b/tests/seahub/thirdpart/shibboleth/test_backends.py @@ -44,7 +44,7 @@ settings.AUTHENTICATION_BACKENDS += ( 'shibboleth.backends.ShibbolethRemoteUserBackend', ) -settings.MIDDLEWARE_CLASSES += ( +settings.MIDDLEWARE.append( 'shibboleth.middleware.ShibbolethRemoteUserMiddleware', ) diff --git a/tests/seahub/thirdpart/shibboleth/test_middleware.py b/tests/seahub/thirdpart/shibboleth/test_middleware.py index d8929d502a..3ce53916c1 100644 --- a/tests/seahub/thirdpart/shibboleth/test_middleware.py +++ b/tests/seahub/thirdpart/shibboleth/test_middleware.py @@ -18,7 +18,7 @@ settings.AUTHENTICATION_BACKENDS += ( 'shibboleth.backends.ShibbolethRemoteUserBackend', ) -settings.MIDDLEWARE_CLASSES += ( +settings.MIDDLEWARE.append( 'shibboleth.middleware.ShibbolethRemoteUserMiddleware', ) diff --git a/tests/seahub/two_factor/views/test_backup_tokens_view.py b/tests/seahub/two_factor/views/test_backup_tokens_view.py index c75c34a62c..1e3c365b50 100644 --- a/tests/seahub/two_factor/views/test_backup_tokens_view.py +++ b/tests/seahub/two_factor/views/test_backup_tokens_view.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse import pytest pytestmark = pytest.mark.django_db 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 33f8bf3fb1..570a161f0f 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,6 +1,6 @@ import json from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from seahub.share.models import UploadLinkShare diff --git a/tests/seahub/views/file/test_download_file.py b/tests/seahub/views/file/test_download_file.py index 715073aa3c..ebd540f772 100644 --- a/tests/seahub/views/file/test_download_file.py +++ b/tests/seahub/views/file/test_download_file.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seaserv import seafile_api diff --git a/tests/seahub/views/file/test_file.py b/tests/seahub/views/file/test_file.py index bd2bf0f0ca..fe0f059cec 100644 --- a/tests/seahub/views/file/test_file.py +++ b/tests/seahub/views/file/test_file.py @@ -1,5 +1,5 @@ from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse import requests from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/file/test_view_file_via_shared_dir.py b/tests/seahub/views/file/test_view_file_via_shared_dir.py index ec73f0a257..0e48e3d76e 100644 --- a/tests/seahub/views/file/test_view_file_via_shared_dir.py +++ b/tests/seahub/views/file/test_view_file_via_shared_dir.py @@ -1,7 +1,7 @@ # encoding: utf-8 import os -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import TestCase from seahub.share.models import FileShare diff --git a/tests/seahub/views/file/test_view_lib_file.py b/tests/seahub/views/file/test_view_lib_file.py index 06cc241af9..62c5aeda02 100644 --- a/tests/seahub/views/file/test_view_lib_file.py +++ b/tests/seahub/views/file/test_view_lib_file.py @@ -2,7 +2,7 @@ import requests from mock import Mock from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/file/test_view_lib_file_via_smart_link.py b/tests/seahub/views/file/test_view_lib_file_via_smart_link.py index 0f89fde271..065f6bb9f6 100644 --- a/tests/seahub/views/file/test_view_lib_file_via_smart_link.py +++ b/tests/seahub/views/file/test_view_lib_file_via_smart_link.py @@ -1,6 +1,6 @@ import json -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/file/test_view_shared_file.py b/tests/seahub/views/file/test_view_shared_file.py index 17740c3af8..355e7b3a4f 100644 --- a/tests/seahub/views/file/test_view_shared_file.py +++ b/tests/seahub/views/file/test_view_shared_file.py @@ -1,7 +1,7 @@ # encoding: utf-8 import os -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import TestCase import requests diff --git a/tests/seahub/views/init/test_convert_cmmt_desc_link.py b/tests/seahub/views/init/test_convert_cmmt_desc_link.py index 398eb091d4..876707d167 100644 --- a/tests/seahub/views/init/test_convert_cmmt_desc_link.py +++ b/tests/seahub/views/init/test_convert_cmmt_desc_link.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/init/test_i18n.py b/tests/seahub/views/init/test_i18n.py index a670b33ecb..dfcc20df71 100644 --- a/tests/seahub/views/init/test_i18n.py +++ b/tests/seahub/views/init/test_i18n.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase from seahub.profile.models import Profile diff --git a/tests/seahub/views/init/test_repo_download_dir.py b/tests/seahub/views/init/test_repo_download_dir.py index 4d194ed1f3..921f0c7faa 100644 --- a/tests/seahub/views/init/test_repo_download_dir.py +++ b/tests/seahub/views/init/test_repo_download_dir.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/init/test_repo_history.py b/tests/seahub/views/init/test_repo_history.py index bb14d97496..9d293fee4e 100644 --- a/tests/seahub/views/init/test_repo_history.py +++ b/tests/seahub/views/init/test_repo_history.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/init/test_repo_revert_history.py b/tests/seahub/views/init/test_repo_revert_history.py index b581aac987..393888867c 100644 --- a/tests/seahub/views/init/test_repo_revert_history.py +++ b/tests/seahub/views/init/test_repo_revert_history.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/repo/test_download_dir.py b/tests/seahub/views/repo/test_download_dir.py index 805fbbdc8f..c772f44d0c 100644 --- a/tests/seahub/views/repo/test_download_dir.py +++ b/tests/seahub/views/repo/test_download_dir.py @@ -1,5 +1,5 @@ from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/repo/test_repo_history_view.py b/tests/seahub/views/repo/test_repo_history_view.py index d8345b6d0a..1a613ea5e4 100644 --- a/tests/seahub/views/repo/test_repo_history_view.py +++ b/tests/seahub/views/repo/test_repo_history_view.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/repo/test_view_shared_dir.py b/tests/seahub/views/repo/test_view_shared_dir.py index 1e5e0804f1..5d0a742f9c 100644 --- a/tests/seahub/views/repo/test_view_shared_dir.py +++ b/tests/seahub/views/repo/test_view_shared_dir.py @@ -1,5 +1,5 @@ import os -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import TestCase from seahub.share.models import FileShare diff --git a/tests/seahub/views/sysadmin/test_sys_sudo_mode.py b/tests/seahub/views/sysadmin/test_sys_sudo_mode.py index 0b7e00354a..28c50e533f 100644 --- a/tests/seahub/views/sysadmin/test_sys_sudo_mode.py +++ b/tests/seahub/views/sysadmin/test_sys_sudo_mode.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse import pytest pytestmark = pytest.mark.django_db diff --git a/tests/seahub/views/sysadmin/test_sysadmin.py b/tests/seahub/views/sysadmin/test_sysadmin.py index 881902279a..5189cdaf85 100644 --- a/tests/seahub/views/sysadmin/test_sysadmin.py +++ b/tests/seahub/views/sysadmin/test_sysadmin.py @@ -2,7 +2,7 @@ import os import openpyxl from io import BytesIO from mock import patch -from django.core.urlresolvers import reverse +from django.urls import reverse from post_office.models import Email from seahub.base.accounts import User diff --git a/tests/seahub/views/sysadmin/test_user_add.py b/tests/seahub/views/sysadmin/test_user_add.py index c6dbb6069e..df1ee16924 100644 --- a/tests/seahub/views/sysadmin/test_user_add.py +++ b/tests/seahub/views/sysadmin/test_user_add.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse import pytest pytestmark = pytest.mark.django_db diff --git a/tests/seahub/views/sysadmin/test_user_reset.py b/tests/seahub/views/sysadmin/test_user_reset.py index 0f2c35cb73..649bf5fc10 100644 --- a/tests/seahub/views/sysadmin/test_user_reset.py +++ b/tests/seahub/views/sysadmin/test_user_reset.py @@ -1,6 +1,6 @@ from mock import patch from django.core import mail -from django.core.urlresolvers import reverse +from django.urls import reverse import pytest pytestmark = pytest.mark.django_db diff --git a/tests/seahub/views/test_list_lib_dir.py b/tests/seahub/views/test_list_lib_dir.py index e8ba1aaa6e..95b2c769c6 100644 --- a/tests/seahub/views/test_list_lib_dir.py +++ b/tests/seahub/views/test_list_lib_dir.py @@ -1,7 +1,7 @@ import json import os -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.test_utils import BaseTestCase diff --git a/tests/seahub/views/test_sso.py b/tests/seahub/views/test_sso.py index 19ffda5805..745430c7c2 100644 --- a/tests/seahub/views/test_sso.py +++ b/tests/seahub/views/test_sso.py @@ -1,5 +1,5 @@ from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings from django.utils.http import urlquote diff --git a/tests/seahub/wiki/test_views.py b/tests/seahub/wiki/test_views.py index 994a4598ed..378720844c 100644 --- a/tests/seahub/wiki/test_views.py +++ b/tests/seahub/wiki/test_views.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from seahub.wiki.models import Wiki from seahub.test_utils import BaseTestCase diff --git a/thirdpart/registration/models.py b/thirdpart/registration/models.py index 01bc767cad..010e24423d 100644 --- a/thirdpart/registration/models.py +++ b/thirdpart/registration/models.py @@ -290,7 +290,7 @@ class RegistrationProfile(models.Model): ########## signal handlers import logging -from django.core.urlresolvers import reverse +from django.urls import reverse from django.dispatch import receiver from django.utils.http import urlquote diff --git a/thirdpart/registration/tests/views.py b/thirdpart/registration/tests/views.py index e58b488757..0001638346 100644 --- a/thirdpart/registration/tests/views.py +++ b/thirdpart/registration/tests/views.py @@ -3,7 +3,7 @@ import datetime from django.conf import settings from django.contrib.auth.models import User from django.core import mail -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import TestCase from registration import forms diff --git a/thirdpart/shibboleth/context_processors.py b/thirdpart/shibboleth/context_processors.py index 5e593e033e..4b246b09f2 100755 --- a/thirdpart/shibboleth/context_processors.py +++ b/thirdpart/shibboleth/context_processors.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from urllib.parse import quote def login_link(request): diff --git a/thirdpart/shibboleth/middleware.py b/thirdpart/shibboleth/middleware.py index 63fe398a6a..e518d90ad5 100755 --- a/thirdpart/shibboleth/middleware.py +++ b/thirdpart/shibboleth/middleware.py @@ -5,7 +5,7 @@ import logging from django.conf import settings from django.contrib.auth.middleware import RemoteUserMiddleware from django.core.exceptions import ImproperlyConfigured -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseRedirect from seaserv import seafile_api, ccnet_api @@ -39,7 +39,7 @@ class ShibbolethRemoteUserMiddleware(RemoteUserMiddleware): raise ImproperlyConfigured( "The Django remote user auth middleware requires the" " authentication middleware to be installed. Edit your" - " MIDDLEWARE_CLASSES setting to insert" + " MIDDLEWARE setting to insert" " 'django.contrib.auth.middleware.AuthenticationMiddleware'" " before the RemoteUserMiddleware class.") diff --git a/thirdpart/shibboleth/tests/shib.py b/thirdpart/shibboleth/tests/shib.py index 5df1449fac..6905ab57a7 100755 --- a/thirdpart/shibboleth/tests/shib.py +++ b/thirdpart/shibboleth/tests/shib.py @@ -50,7 +50,7 @@ settings.AUTHENTICATION_BACKENDS += ( 'shibboleth.backends.ShibbolethRemoteUserBackend', ) -settings.MIDDLEWARE_CLASSES += ( +settings.MIDDLEWARE.append( 'shibboleth.middleware.ShibbolethRemoteUserMiddleware', ) diff --git a/thirdpart/termsandconditions/middleware.py b/thirdpart/termsandconditions/middleware.py index f0785beba7..b6a81a250a 100644 --- a/thirdpart/termsandconditions/middleware.py +++ b/thirdpart/termsandconditions/middleware.py @@ -1,4 +1,6 @@ """Terms and Conditions Middleware""" +from django.utils.deprecation import MiddlewareMixin + from .models import TermsAndConditions from django.conf import settings import logging @@ -12,7 +14,7 @@ TERMS_EXCLUDE_URL_PREFIX_LIST = getattr(settings, 'TERMS_EXCLUDE_URL_PREFIX_LIST TERMS_EXCLUDE_URL_LIST = getattr(settings, 'TERMS_EXCLUDE_URL_LIST', {'/termsrequired/', '/accounts/logout/', '/securetoo/'}) -class TermsAndConditionsRedirectMiddleware(object): +class TermsAndConditionsRedirectMiddleware(MiddlewareMixin): """ This middleware checks to see if the user is logged in, and if so, if they have accepted the site terms. diff --git a/thirdpart/termsandconditions/migrations/0001_initial.py b/thirdpart/termsandconditions/migrations/0001_initial.py index da28a596f9..fc2e13dbe2 100644 --- a/thirdpart/termsandconditions/migrations/0001_initial.py +++ b/thirdpart/termsandconditions/migrations/0001_initial.py @@ -37,7 +37,7 @@ class Migration(migrations.Migration): ('username', seahub.base.fields.LowerCaseCharField(max_length=255)), ('ip_address', models.GenericIPAddressField(null=True, verbose_name=b'IP Address', blank=True)), ('date_accepted', models.DateTimeField(auto_now_add=True, verbose_name=b'Date Accepted')), - ('terms', models.ForeignKey(related_name='userterms', to='termsandconditions.TermsAndConditions')), + ('terms', models.ForeignKey(on_delete=models.CASCADE, related_name='userterms', to='termsandconditions.TermsAndConditions')), ], options={ 'get_latest_by': 'date_accepted', diff --git a/thirdpart/termsandconditions/models.py b/thirdpart/termsandconditions/models.py index 0517b24076..e24f722fb9 100644 --- a/thirdpart/termsandconditions/models.py +++ b/thirdpart/termsandconditions/models.py @@ -19,7 +19,7 @@ DEFAULT_TERMS_SLUG = getattr(settings, 'DEFAULT_TERMS_SLUG', 'site-terms') class UserTermsAndConditions(models.Model): """Holds mapping between TermsAndConditions and Users""" username = LowerCaseCharField(max_length=255) - terms = models.ForeignKey("TermsAndConditions", related_name="userterms") + terms = models.ForeignKey("TermsAndConditions", on_delete=models.CASCADE, related_name="userterms") ip_address = models.GenericIPAddressField(null=True, blank=True, verbose_name='IP Address') date_accepted = models.DateTimeField(auto_now_add=True, verbose_name='Date Accepted') @@ -53,10 +53,6 @@ class TermsAndConditions(models.Model): def __str__(self): return "{0}-{1:.2f}".format(self.slug, self.version_number) - @models.permalink - def get_absolute_url(self): - return ('tc_view_specific_version_page', [self.slug, self.version_number]) # pylint: disable=E1101 - @staticmethod def create_default_terms(): """Create a default TermsAndConditions Object""" diff --git a/thirdpart/termsandconditions/pipeline.py b/thirdpart/termsandconditions/pipeline.py index 4510107291..a47f7a1bfe 100644 --- a/thirdpart/termsandconditions/pipeline.py +++ b/thirdpart/termsandconditions/pipeline.py @@ -9,7 +9,7 @@ except ImportError: from .models import TermsAndConditions from django.http import HttpResponseRedirect, QueryDict from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse import logging ACCEPT_TERMS_PATH = getattr(settings, 'ACCEPT_TERMS_PATH', '/terms/accept/') diff --git a/thirdpart/termsandconditions/tests.py b/thirdpart/termsandconditions/tests.py index a980f1c9db..33c4b64eb5 100644 --- a/thirdpart/termsandconditions/tests.py +++ b/thirdpart/termsandconditions/tests.py @@ -252,7 +252,7 @@ class TermsAndConditionsTests(TestCase): self.assertContains(slug_response, 'Terms and Conditions') LOGGER.debug('Test /terms/view/site-terms/1.5') - version_response = self.client.get(self.terms3.get_absolute_url(), follow=True) + version_response = self.client.get('/terms/view/site-terms/1.0', follow=True) self.assertContains(version_response, 'Terms and Conditions') def test_user_pipeline(self):