Python 测试Django allauth
我正在尝试测试我的应用程序,但不确定如何在测试环境中配置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
配置不当:未配置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()
方法中,那么应该没有问题
就我个人而言,我会创建一个fixtureinit\u facebook\u app.json
,其中包含相关信息,然后在tests.py
(在测试用例之前)中定义:
这样可以确保在运行测试之前加载夹具中的数据,并且只加载一次,即不是在每次测试之前加载。有关call_命令的信息,请参见此
最后,将你的Facebook应用程序密钥发布到互联网上的任何地方都不是一个好主意-如果我是你,我会重置它。我会创建一个迁移,以便你的所有环境都有数据
乙二醇
我在Testcasedef
中实例化了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),
]