2014-07-22 33 views
5

Uygulamamı test etmeye çalışıyorum ancak test ortamında django-allauth'u nasıl yapılandıracağından emin değilim. Ben alıyorum:Django allauth'u test etme

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

Benim yaklaşımım şu ana kadar tarayıcıda düzgün lokal, fiili Facebook uygulaması parametreleri ile tests.py içine hangi işlevleri bir uygulamayı uygulama nesneleri örneğini şudur:

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

Ben nasıl Bu testleri çalıştırıyor musunuz? Teşekkürler

cevap

3

Bu uygulama nesnesini tests.py içinde nereden buluyorsunuz? setUpModule() yönteminin içinde ise, sorun olmamalıdır.

Şahsen, ilgili bilgileri içeren bir fikstür init_facebook_app.json oluşturmak ve sonra tests.py içindeki (test durumlarda öncesi) tanımlarsınız:

from django.core.management import call_command  

def setUpModule(): 
    call_command('loaddata', 'init_facebook_app.json', verbosity=0) 

Bu testler çalıştırılmadan önce fikstür veri yüklenmiş olmasını sağlar ve sadece bir kez yüklenirler, yani her testten önce değil. Call_command ile ilgili olarak reference için buna bakın.

Son olarak, Facebook uygulamanızın gizli anahtarını internetteki herhangi bir yerde yayınlamak iyi bir fikir değildir - ben olsaydım, onu sıfırlardım. Bir taşıma yaratacak

+1

. Fikstürler harika olurdu, ancak şu sıralar boyunca sonsuz sıkıntıları alıyorum: http://stackoverflow.com/questions/19857406/django-unable-to-load-test-fixtures-integrityerror setUpModule çözümünüzü kullanarak. Başka fikirlerin var mı? Re: Gizli anahtar: Endişeyi takdir ediyorum ama göndermeden önce rastgele yaptım. – KindOfGuy

+1

Hmm, kayıptayım. Sadece çalışıp çalışmadığını görmek için fikstürü elle oluşturmayı deneyin. "[{" Pk ": 1," model ":" site.site "," alanlar ": {" domain ":" 127.0.0.1:8000 "," name ":" creyu.org "satırları boyunca bir şey }}, {"pk": 1, "model": "socialaccount.socialapp", "alanlar": {"name": "Facebook", "siteler": [1], "secret": "XXX", " client_id ":" XXX "," anahtar ":" "," sağlayıcı ":" facebook "}}]' – kreld

+0

Yine, bu 'ImproperlyConfigured' ile boğuşuyor. Geçerliliği sağlamak için spesifik fikstür segmentlerini doğrudan veri döküntülerinden aldım. Bir şekilde daha fazlasına ihtiyacı olmalı. Belki de yukarıda belirtilen ana fikstür hataları ile karşı karşıya gerekiyor. Başka fikirlerin var mı? Teşekkürler! – KindOfGuy

0

böylece tüm ortamlar verilerini

var mesela

Bir Testcase `def` iç uygulama nesnesi örneği olan
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), 
]