2014-07-22 2 views
5

테스트 환경에서 django-allauth를 구성하는 방법을 잘 모르지만 내 응용 프로그램을 테스트하려고합니다. 나는 점점 오전 :Django allauth 테스트

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

내 접근 방식은 지금까지 브라우저에서 제대로 로컬로, 실제 페이스 북 응용 프로그램 매개 변수 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') 

어떻게 내가 할 수있는 이 테스트를 실행 하시겠습니까? 감사합니다

답변

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) 

를이 테스트를 실행하기 전에 고정 장치의 데이터가로드되는 것을 보장 , 그리고 그것들은 단지 한 번만, 즉 각 시험 전에로드되지 않는다. call_command에 대해서는 reference을 참조하십시오.

마지막으로 인터넷에 페이스 북 앱의 비밀 키를 게시하는 것은 좋은 생각이 아닙니다. 내가 당신이라면 재설정 할 것입니다. 내가 마이그레이션을 만들 것

+1

. 비상 사태는 끝이없는 비참함을 제외하고는 훌륭합니다. http://stackoverflow.com/questions/19857406/django-unable-to-load-test-fixtures-integrityerror setUpModule 솔루션을 사용하십시오. 다른 아이디어? Re : 비밀 키 : 고맙게 생각하지만 게시하기 전에 무작위로 선택했습니다. – KindOfGuy

+1

흠, 나는 잃어 버렸어. 조명기가 수동으로 만들어 지는지 직접 확인해보십시오. ''{{ "pk": 1, "model": "sites.site", "fields": { "domain": "127.0.0.1:8000", "name": "creyu.org" } ","사이트 ":"1 ","비밀 ":"XXX ","비밀 번호 ":" "012", "key": "", "provider": "facebook"}}]' – kreld

+0

다시,'ImproperlyConfigured'로 질식합니다. 유효성을 보장하기 위해 데이터 덤프에서 특정 조명기 세그먼트를 직접 가져 왔습니다. 그것은 어떻게 든 더 많이 요구해야합니다. 아마도 필자는 위에 언급 된 주요 치구 오류에 직면해야합니다. 다른 아이디어? 감사! – KindOfGuy

0

때문에 모든 환경은 데이터

이 예

제가 테스트 케이스`def`의 내부 응용 프로그램 객체를 인스턴스화 한
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), 
] 
관련 문제