【问题标题】:Confirmation email in Django Selenium testsDjango Selenium 测试中的确认电子邮件
【发布时间】:2018-04-07 18:40:09
【问题描述】:

我正在尝试使用 Selenium for 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 所以我正在考虑在测试中使用一些功能来注册用户,然后找到这个模仿确认电子邮件的日志并访问其中指定的网站,但也许有人知道更好的解决方案?

【问题讨论】:

    标签: django selenium testing functional-testing django-allauth


    【解决方案1】:

    如果有人在寻找它 - allauth 有一个名为 account_emailaddress 的表,其中存储了 verified 参数。当用户单击验证电子邮件中的确认按钮时,它被设置为True。在测试中,手动设置就足够了。

    【讨论】:

      猜你喜欢
      • 2016-02-06
      • 2019-11-23
      • 2016-07-02
      • 2011-07-26
      • 2012-04-04
      • 2014-07-09
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      相关资源
      最近更新 更多