测试Django allauth

Kin*_*Guy 6 python testing django facebook django-allauth

我正在尝试测试我的应用程序但不确定如何在测试环境中配置django-allauth.我正进入(状态:

ImproperlyConfigured: No Facebook app configured: please add a SocialApp using the Django admin

到目前为止,我的方法是tests.py使用实际的Facebook应用程序参数实例化app对象,这是一个在浏览器中本地正常运行的应用程序:

from allauth.socialaccount.models import SocialApp

apper = SocialApp.objects.create(provider=u'facebook', 
    name=u'fb1', client_id=u'7874132722290502',
    secret=u'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
apper.sites.create(domain='localhost:8000', name='creyu.org')
Run Code Online (Sandbox Code Playgroud)

我怎样才能运行这些测试?谢谢

kre*_*eld 3

tests.py你在哪里实例化这个应用程序对象?如果它在setUpModule()方法内部,应该没有问题。

就我个人而言,我会创建一个init_facebook_app.json包含相关信息的固定装置,然后在内部tests.py(在测试用例之前)定义:

from django.core.management import call_command    

def setUpModule():
    call_command('loaddata', 'init_facebook_app.json', verbosity=0)
Run Code Online (Sandbox Code Playgroud)

这确保了夹具中的数据在测试运行之前加载,并且仅加载一次,即不在每次测试之前加载。有关 call_command 的参考,请参阅此内容。

最后,在互联网上的任何地方发布您的 Facebook 应用程序密钥并不是一个好主意 - 如果我是您,我会重置它。