2016-04-02 30 views
0

Sonunda Django uygulamam için test hazırlıyorum, ancak başlamakta zorluk çekiyorum. Testlerim için dinamik veriler oluşturmak için model_mommy kullanıyorum, ancak şu soruna sahip:model_mommy - kullanıcı atama ilişkisi

Test ettiğim görünümün belirli bir kullanıcının tamamlaması gereken tüm assignments göstermesi gerekiyor. Bunu test etmek için 500 ödev oluşturmayı, uygulamaya giriş yapmayı ve gösterilip gösterilmediklerini kontrol etmek istiyorum. Şimdiye kadar aşağıdaki test durumları vardır:

class TestLogin(TestCase): 


    def setUp(self): 
     self.client = Client() 
     user = User.objects.create(username='sam') 
     user.set_password('samspassword') 
     user.save() 

    def test_login(self): 
     self.client.login(username='sam', password='samspassword') 
     response = self.client.get('/') 
     print (response.content) 
     self.assertEqual(response.status_code, 200) 

ve

class TestShowAssignments(TestCase): 

    def setUp(self): 
     user_recipe = Recipe(User, username='sam', password="samspassword") 
     self.assignment = Recipe(Assignment, 
      coders = related(user_recipe)) 
     self.assignments = self.assignment.make(_quantity=500) 

    def test_assignments(self): 
     self.assertIsInstance(self.assignments[0],Assignment) 
     self.assertEqual(len(self.assignments),500) 

ilk test ince geçer ve gerektiği yapar: TestLogin kullanıcıyı kaydeder ve onun hesabını sayfayı gösterir. Sorun, 500 atama oluşturan TestShowAssignments ile başlıyor, ancak ödevlere print (self.assignments[0].coders) ile bakarsanız, auth.User.None alırım. Bu yüzden tanımladığım kullanıcıyı ödevlerle ilişki olarak eklemez. Burada önemli olan, modeldeki coders alanın, related kullanarak adreslemeye çalıştığım m2m alanıdır, ancak bu işe yaramaz.

Ayrıca çalışmaz da giriş yapılıyor: TestShowAssignments numaralı telefondan TestLogin sırasında oturum açmak için kullandığım aynı kodu kullanırsam, giriş yapamıyorum ve kullanıcı sayfasını göremiyorum.

Yani, sorum: model_mommy Ödevler oluşturmak ve bunları belirli bir kullanıcıya eklemek için nasıl kullanabilirim, böylece kullanıcı olarak giriş yapabilir ve ödevlerin düzgün görüntülenip görüntülenmediğini görebilir miyim?

cevap

0

"Kodlayıcılar" alanında Kullanıcı "sam" ın tek bir giriş olarak sahip olduğu 500 Atamanın olmasını ister misiniz? Eğer öyleyse, aşağıdakileri deneyin: