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。测试中,手动设置即可。