Python 测试Django allauth

Python 测试Django allauth,python,django,facebook,testing,django-allauth,Python,Django,Facebook,Testing,Django Allauth,我正在尝试测试我的应用程序,但不确定如何在测试环境中配置django allauth。我得到: 配置不当:未配置Facebook应用程序:请使用Django管理员添加社交应用程序 到目前为止,我的方法是使用实际的Facebook应用程序参数实例化tests.py中的应用程序对象,该应用程序在浏览器中本地正常运行: from allauth.socialaccount.models import SocialApp apper = SocialApp.objects.create(provide

我正在尝试测试我的应用程序,但不确定如何在测试环境中配置django allauth。我得到:

配置不当:未配置Facebook应用程序:请使用Django管理员添加社交应用程序

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

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')

如何运行这些测试?谢谢

tests.py中的何处你实例化了这个应用程序对象吗?如果它在
setUpModule()
方法中,那么应该没有问题

就我个人而言,我会创建一个fixture
init\u facebook\u app.json
,其中包含相关信息,然后在
tests.py
(在测试用例之前)中定义:

这样可以确保在运行测试之前加载夹具中的数据,并且只加载一次,即不是在每次测试之前加载。有关call_命令的信息,请参见此


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

我会创建一个迁移,以便你的所有环境都有数据

乙二醇


我在Testcase
def
中实例化了app对象。fixture会很好,除了我在使用setUpModule解决方案时遇到了无尽的麻烦。还有其他想法吗?回复:秘钥:我很感激你的担心,但我在发帖之前已经随机分配了。嗯,我不知所措。尝试手动创建夹具,看看是否有效。类似于{code>[{pk:1,“model”:“sites.site”,“fields”:{“domain”:“127.0.0.1:8000”,“name”:“creyu.org”},{“pk”:1,“model”:“socialaccount.socialapp”,“fields”:{“name”:“Facebook”,“sites”:[1],“secret”:“XXX”,“client_id”:“XXX”,“key”:“provider”:“Facebook”}
,由于
配置不当而窒息的
。我直接从数据转储中获取特定的fixture片段,以确保其有效性。它一定需要更多的东西。也许我需要正视上面提到的主要夹具错误。还有其他想法吗?谢谢这似乎克服了夹具问题,因此您的答案是正确的:感谢您的关注!
from django.core.management import call_command    

def setUpModule():
    call_command('loaddata', 'init_facebook_app.json', verbosity=0)
import os
from django.db import models, migrations
from django.core.management import call_command
from django.conf import settings

class Migration(migrations.Migration):

    def add_initial_providers(apps, schema_editor):
        import pdb;pdb.set_trace()
        call_command(
            'loaddata',
            os.path.join(settings.BASE_DIR,         'fixtures/social_auth.json'),
        verbosity=0)

dependencies = [
    ('my_app', '001_auto_20160128_1846'),
]


operations = [
    migrations.RunPython(add_initial_providers),
]