0

鼻のテスト用にユーザーをセットアップしようとしましたが、機能しません

定義されたグローバル スコープ内:

from django.contrib.auth.models import User
import nose.tools as noz

定義されたテストクラス内:

def setUp(self):
    self.client = Client()
    user = User(username="test", password="test")
    user.save()

noz.set_trace() でテストしたユーザーは保存されますが、テスト関数が同じユーザーのログインを呼び出すと、アサーション エラーが発生します。

nosetests --verbosity 1
Creating test database for alias 'default'...
> <app-path>/tests.py(59)testTestUser()
-> response = self.client.login(username=u'test', password=u'test')
(Pdb) User.objects.all()
[<User: test>]

testTestUser 関数は次のように定義されます。

def testTestUser(self):
    """ Tests if the django user 'test' is setup properly."""
    noz.set_trace()
    # login the test user
    response = self.client.login(username='test', password='test')    
    noz.assert_equal(response, True)

関連するテスト出力は次のとおりです。

    noz.assert_equal(response, True)
       AssertionError: False != True

    ----------------------------------------------------------------------
    Ran 1 test in 0.011s

    FAILED (failures=1)

私の意図は、 requst.user.is_authenicated() ブランチを持つビューをテストすることです。

4

1 に答える 1

1

からそれを考え出した: http://www.pukkared.com/2011/07/simulating-user-login-in-a-django-view-unit-test/

適切なコードは次のとおりです。

def setUp(self):
    self.client = Client()
    user = User.objects.create_user(username="test", password="test")

def testTestUser(self):
    """ Tests if the django user 'test' is setup properly."""
    noz.set_trace()
    # login the test user
    response = self.client.login(username='test', password='test')    
    noz.assert_equal(response, True)
于 2013-04-20T05:27:55.487 に答える