Django Selenium 测试中的确认电子邮件
Confirmation email in Django Selenium tests
我正在尝试使用 Selenium 为 Python 为我的 Django 应用程序编写简单的登录测试,但我收到凭据无效的错误。对于注册,我使用的是提供电子邮件确认机制的 allauth 包。据我了解,凭据无效,因为新创建的用户未回复确认电子邮件。有没有办法将其关闭以进行测试?我试图将 ACCOUNT_EMAIL_REQUIRED 设置设置为 False 但它导致断言(这是 runserver 命令的结果):
Unhandled exception in thread started by <function check_errors. <locals>.wrapper at 0x7fccbb8cb400>
Traceback (most recent call last):
File "/pathToPython/python3.5/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/pathToPython/python3.5/site-packages/django/core/management/commands/runserver.py", line 112, in inner_run
autoreload.raise_last_exception()
File "/pathToPython/python3.5/site-packages/django/utils/autoreload.py", line 248, in raise_last_exception
raise _exception[1]
File "/pathToPython/python3.5/site-packages/django/core/management/__init__.py", line 327, in execute
autoreload.check_errors(django.setup)()
File "/pathToPython/python3.5/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/pathToPython/python3.5/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/pathToPython/python3.5/site-packages/django/apps/registry.py", line 112, in populate
app_config.import_models()
File "/pathToPython/python3.5/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "/pathToPython/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 665, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/pathToPython/python3.5/site-packages/allauth/account/models.py", line 12, in <module>
from . import app_settings, signals
File "/pathToPython/python3.5/site-packages/allauth/account/app_settings.py", line 328, in <module>
app_settings = AppSettings('ACCOUNT_')
File "/pathToPython/python3.5/site-packages/allauth/account/app_settings.py", line 22, in __init__
self.AuthenticationMethod.EMAIL) or self.EMAIL_REQUIRED
AssertionError
出于测试目的,我正在使用 filebased.EmailBackend,所以我正在考虑在测试中使用一些功能来注册用户,然后找到这个模拟确认电子邮件的日志并访问其中指定的网站,但也许有人知道更好的解决方案?
万一有人在找它 - allauth 有一个名为 account_emailaddress
的 table,它存储 verified
参数。当用户单击验证电子邮件中的确认按钮时,它会设置为 True
。测试中,手动设置即可。
我正在尝试使用 Selenium 为 Python 为我的 Django 应用程序编写简单的登录测试,但我收到凭据无效的错误。对于注册,我使用的是提供电子邮件确认机制的 allauth 包。据我了解,凭据无效,因为新创建的用户未回复确认电子邮件。有没有办法将其关闭以进行测试?我试图将 ACCOUNT_EMAIL_REQUIRED 设置设置为 False 但它导致断言(这是 runserver 命令的结果):
Unhandled exception in thread started by <function check_errors. <locals>.wrapper at 0x7fccbb8cb400>
Traceback (most recent call last):
File "/pathToPython/python3.5/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/pathToPython/python3.5/site-packages/django/core/management/commands/runserver.py", line 112, in inner_run
autoreload.raise_last_exception()
File "/pathToPython/python3.5/site-packages/django/utils/autoreload.py", line 248, in raise_last_exception
raise _exception[1]
File "/pathToPython/python3.5/site-packages/django/core/management/__init__.py", line 327, in execute
autoreload.check_errors(django.setup)()
File "/pathToPython/python3.5/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/pathToPython/python3.5/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/pathToPython/python3.5/site-packages/django/apps/registry.py", line 112, in populate
app_config.import_models()
File "/pathToPython/python3.5/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "/pathToPython/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 665, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/pathToPython/python3.5/site-packages/allauth/account/models.py", line 12, in <module>
from . import app_settings, signals
File "/pathToPython/python3.5/site-packages/allauth/account/app_settings.py", line 328, in <module>
app_settings = AppSettings('ACCOUNT_')
File "/pathToPython/python3.5/site-packages/allauth/account/app_settings.py", line 22, in __init__
self.AuthenticationMethod.EMAIL) or self.EMAIL_REQUIRED
AssertionError
出于测试目的,我正在使用 filebased.EmailBackend,所以我正在考虑在测试中使用一些功能来注册用户,然后找到这个模拟确认电子邮件的日志并访问其中指定的网站,但也许有人知道更好的解决方案?
万一有人在找它 - allauth 有一个名为 account_emailaddress
的 table,它存储 verified
参数。当用户单击验证电子邮件中的确认按钮时,它会设置为 True
。测试中,手动设置即可。