2016-04-02 14 views
0

私は最終的に私のDjangoアプリケーションのテストを設定していますが、始めに問題があります。model_mommy - 割り当て関係のユーザ

私がテストしているビューは、特定のユーザが完了しなければならないすべてのものを表示することになっています。これをテストするために、私は500件の課題を作成し、アプリにログインして表示されているかどうか確認したいと思います。これまでのところ私は、次のテストケースを持っている:

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) 

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) 

最初のテストはうまく通過して、それがどうあるべきかを行います。TestLoginは、ユーザーがログインすると自分のアカウントページを示しています。 問題はTestShowAssignmentsで始まり、割り当てが500件になりますが、割り当てをprint (self.assignments[0].coders)にすればauth.User.Noneとなります。だから私は割り当てに関係として定義したユーザーを追加しません。ここで重要なのは、モデル内のcodersフィールドがm2mフィールドであり、これはrelatedを使用してアドレス指定しようとしましたが、動作していないようです。

TestLoginのログイン時に同じコードを使用してTestShowAssignmentsにログインすると、ログインできず、ユーザーページも表示されません。

model_mommyを使用して割り当てを作成し、特定のユーザーに追加するにはどうすればよいのですか。そのユーザーとしてログインし、割り当てが正しく表示されるかどうかを確認します。

答えて

0

「コーマー」フィールドのすべてのユーザーが「sam」を1つのエントリとして持つすべての割り当てを500にしますか?その場合は、

from model_mommy import mommy 
... 
class TestShowAssignments(TestCase): 

    def setUp(self): 
     self.user = mommy.make(User, username='sam', password='samspassword') 
     self.assignments = mommy.make(Assigment, coders=[self.user], _quantity=500) 
関連する問題