Sto utilizzando il LiveServerTestCase di Django 1.4 per il test del selenio e sto avendo problemi con il metodo di classe setUpClass
. Per quanto ne so, MembershipTests.setUpClass
viene eseguito una volta prima dell'esecuzione dei test delle unità.Django LiveServerTestCase: utente creato nel metodo setUpClass non disponibile in test_method?
Ho inserito il codice per aggiungere un utente al database in MembershipTests.setUpClass
ma quando eseguo il test MembershipTests.test_signup
nessun utente è stato aggiunto al database di test. Cosa sto facendo in modo errato? Mi aspetto che l'utente che ho creato in setUpClass
sia disponibile in tutti i test di unità.
Se metto il codice di creazione utente in MembershipTests.setUp
e corro MembershipTests.test_signup
posso vedere l'utente, ma non voglio che questo periodo di prova prima di ogni unità come setUp
è. Come puoi vedere, utilizzo una classe LiveServerTestCase personalizzata per aggiungere funzionalità di base a tutti i miei test (test_utils.CustomLiveTestCase
). Sospetto che questo abbia qualcosa a che fare con il mio problema.
Grazie in anticipo.
test_utils.py:
from selenium.webdriver.firefox.webdriver import WebDriver
from django.test import LiveServerTestCase
class CustomLiveTestCase(LiveServerTestCase):
@classmethod
def setUpClass(cls):
cls.wd = WebDriver()
super(CustomLiveTestCase, cls).setUpClass()
@classmethod
def tearDownClass(cls):
cls.wd.quit()
super(CustomLiveTestCase, cls).tearDownClass()
tests.py:
from django.contrib.auth.models import User
from django.test.utils import override_settings
from test_utils import CustomLiveTestCase
from test_constants import *
@override_settings(STRIPE_SECRET_KEY='xxx', STRIPE_PUBLISHABLE_KEY='xxx')
class MembershipTests(CustomLiveTestCase):
fixtures = [
'account_extras/fixtures/test_socialapp_data.json',
'membership/fixtures/basic/plan.json',
]
def setUp(self):
pass
@classmethod
def setUpClass(cls):
super(MembershipTests, cls).setUpClass()
user = User.objects.create_user(
TEST_USER_USERNAME,
TEST_USER_EMAIL,
TEST_USER_PASSWORD
)
def test_signup(self):
print "users: ", User.objects.all()
Qualche idea, come posso creare un utente e quindi collegarlo con LiveServerTestCase? Creazione dell'account in setUp con il database SQLite in: memoria: non funziona, anche se eseguo il commit manualmente. – dotz