簡體   English   中英

測試Django allauth

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM