[英]Testing Django allauth
我正在嘗試測試我的應用程序,但不確定如何在測試環境中配置django-allauth。 我正進入(狀態:
ImproperlyConfigured: No Facebook app configured: please add a SocialApp using the Django admin
到目前為止,我的方法是使用實際的Facebook應用程序參數在tests.py
實例化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')
我怎樣才能運行這些測試? 謝謝
在tests.py
里面你實例化這個app對象? 如果它在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)
這確保了在運行測試之前加載夾具中的數據,並且它們僅加載一次,即不在每次測試之前加載。 有關call_command的參考 ,請參閱此處。
最后,在互聯網上的任何地方發布你的Facebook應用程序密鑰都不是一個好主意 - 如果我是你,我會重置它。
我會創建一個遷移,以便所有環境都有數據
例如
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),
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.