2016-05-12 2 views
2

私を助けてください。私は現在、ログインメソッド用のテストスクリプトを作成することになっています。ログインdjangoのテストスクリプトを作成

これは私が...

class AuthViewModel(): 
     fixture = [user] 
     user_name = 'usera' 
     password = '12345678' 

     def login_page(self, userName, password, request): 
      """ 
      Login by ID & PWD 
      """ 

      # Get user by name & password 
      self.user = authenticate(username=userName, password=password) 

      if self.user is not None: 
       if self.user.is_active: 
        # Login by Django 
        login(request, self.user) 
       else: 
        # User not active 
        self.message = "User is not actived yet" 
      else: 
       # User not exist 
       self.message = "User name or password is incorrect" 

をテストしていたログイン方法であり、これは私がやったテストスクリプトです。

def test_login_page(self): 
    """Test log in 
    """ 

    actauth = AuthViewModel() 
    actauth.actinbox_login(self.user_name, self.password, request) 
    self.assertEqual(actauth.message, 'User name or password is incorrect') 

これは私の問題では、私は、エラーメッセージの要求」を定義する方法

NameError: name 'request' is not defined 

を受けましたか?

答えて

1

RequestFactoryのリクエストオブジェクトを作成する必要があります。

RequestFactoryは、テストクライアントと同じAPIを共有します。ただし、ブラウザのように動作する代わりに の代わりに、RequestFactoryは、どのビューに対しても最初の引数 として使用できるリクエストインスタンスを生成するために、 に方法を提供します。これは、 と同じ方法でビュー機能をテストできることを意味します。ブラックボックスとして、正確に知られている 入力を持ち、特定の出力をテストします。

そこで、基本的

factory = RequestFactory() 
request = factory.get('/your/login/page/') 
actauth = AuthViewModel() 
actauth.actinbox_login(self.user_name, self.password, request) 
self.assertEqual(actauth.message, 'User name or password is incorrect') 
+0

うわー、おかげで...これは本当に素晴らしい作品! –

+0

多少のご利用になりました。答えが正しいとマークされることを謙虚に示唆するかもしれません。将来ここに着陸し、私達は役に立たないインターネットポイントを得る人にとっては役に立ちます:-) – e4c5

+0

はいそうです。 :)私は本当にあなたのようなより優れたプログラマになりたいと思っています。 –

関連する問題