2016-03-22 12 views
1

Django 1.9 ve Python 3.5 ile deneme özelliklerini test etmek için süper kullanıcı olarak giriş yapmayı denedim, ancak giriş bilgilerim başarısız oluyor.Test Giriş yap kullanıcı adı ile uygun kullanıcı adresi Django 1.9, Python 3.5

İşte test. Her zaman son iddianın en false döndürür:

class TestAdmin(TestCase): 
    def setUp(self): 
     self.client = Client() 
    def test_login(self): 
     my_admin = User(username='user', email='[email protected]') 
     my_admin.set_password('passphrase') 
     my_admin.is_superuser=True 
     my_admin.is_staff=True 
     response = self.client.get('/admin/', follow=True) 
     self.assertEqual(response.status_code, 200) 
     self.assertTrue('Log in' in response.content.decode('utf-8')) 
     loginresponse = self.client.login(username='user', email='[email protected]', 
              password='passphrase') 
     self.assertTrue(loginresponse) 
+2

sana '' –

+0

Sorun sabit() my_admin.save yapması gerektiğini düşünüyorum. Keşke sana ödül verebilseydim. Ayrıca, görünüşe göre .is_staff = True 've değil .is_superuser = True', yani yönetici girişini (çalıştıktan sonra bunları birer birer elemeyi başardım), yani sezgisel olduğunu sanıyorum - süper kullanıcısı düşünebilirdim birşeyler yap. –

+0

Teşekkürler @Jordon Birk. Kabul ederseniz, yorumumu yanıt olarak ekleyebilirim ve belki de bunu yapabilirsiniz. Tekrar teşekkürler, en önemlisi sorunu çözdünüz. –

cevap

2

Ben my_admin.save()

Sizin .is_staff=True kullanıcı testinin zamanında yaratmış kullanıcı "veritabanına" içine kaydedilmesi gerekiyor yapmanız gerektiğini düşünüyorum. izinler aşağıdaki komut ile iyi olmalı:

class TestAdmin(TestCase): 

    def setUp(self): 
     self.client = Client() 
     self.my_admin = User(username='user', is_staff=True) 
     my_admin.set_password('passphrase') # can't set above because of hashing 
     my_admin.save() # needed to save to temporary test db 
     response = self.client.get('/admin/', follow=True) 
     loginresponse = self.client.login(username='user',password='passphrase') 
     self.assertTrue(loginresponse) # should now return "true" 
İlgili konular