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?