我的Django站点使用LDAP后端在生产环境中进行身份验证,但这不适用于测试(无法创建来自虚拟用户的请求)。如何仅针对测试禁用此后端?
这是相关的settings.py部分:
AUTHENTICATION_BACKENDS = (
#'crowd.backend.CrowdBackend',
# 'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
AUTH_LDAP_SERVER_URI = "ldap://ldap.cablelabs.com"
import ldap
from django_auth_ldap.config import LDAPSearch
AUTH_LDAP_BIND_DN = "CN=CableLabs Internal,OU=cabletest,OU=Teamwork,OU=community,DC=cablelabs,DC=com"
AUTH_LDAP_BIND_PASSWORD = "UAq,0@ki"
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=community,dc=cablelabs,dc=com",ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)")
AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName", "last_name": "sn","username":"sAMAccountName","email":"mail","photo":"thumbnailPhoto"}
AUTH_LDAP_CONNECTION_OPTIONS = {
ldap.OPT_REFERRALS: 0
}
创建一个备用设置文件,例如myproj/test_settings.py
,并在运行单元测试时指定该设置文件。
像这样编写备用设置文件:
from myproj.settings import *
AUTHENTICATION_BACKENDS = (
#'your.ldap.backend',
'django.contrib.auth.backends.ModelBackend',
)
也就是说,这些设置继承了常规设置的所有内容,但是会覆盖该AUTHENTICATION_BACKENDS
定义,并注释掉了LDAP后端。
然后,像这样运行测试:
python manage.py test --settings=myproj.test_settings
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句