Sto iniziando con pytest. Ho configurato pytest, comunque non sono riuscito a trovare una risorsa sui test specifici di Django con pytest. Come posso testare un modello con pytest_django
?Come testare un modello Django con pytest?
Ho già chiesto una domanda su unit testing,
Voglio sapere come gli stessi test possono essere scritti con py.test?
aggiungendo sotto il modello e le prove scritte in unittest.
il modello in prova è,
class User(AbstractBaseUser, PermissionsMixin):
username = models.CharField(max_length=25, unique=True, error_messages={
'unique': 'The username is taken'
})
first_name = models.CharField(max_length=60, blank=True, null=True)
last_name = models.CharField(max_length=60, blank=True, null=True)
email = models.EmailField(unique=True, db_index=True, error_messages={
'unique': 'This email id is already registered!'
})
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
date_joined = models.DateTimeField(auto_now_add=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username',]
objects = UserManager()
def get_full_name(self):
return ' '.join([self.first_name, self.last_name])
def get_short_name(self):
return self.email
def __unicode__(self):
return self.username
e la unittest
scritta,
class SettingsTest(TestCase):
def test_account_is_configured(self):
self.assertTrue('accounts' in INSTALLED_APPS)
self.assertTrue('accounts.User' == AUTH_USER_MODEL)
class UserTest(TestCase):
def setUp(self):
self.username = "testuser"
self.email = "[email protected]"
self.first_name = "Test"
self.last_name = "User"
self.password = "z"
self.test_user = User.objects.create_user(
username=self.username,
email=self.email,
first_name=self.first_name,
last_name=self.last_name
)
def test_create_user(self):
self.assertIsInstance(self.test_user, User)
def test_default_user_is_active(self):
self.assertTrue(self.test_user.is_active)
def test_default_user_is_staff(self):
self.assertFalse(self.test_user.is_staff)
def test_default_user_is_superuser(self):
self.assertFalse(self.test_user.is_superuser)
def test_get_full_name(self):
self.assertEqual('Test User', self.test_user.get_full_name())
def test_get_short_name(self):
self.assertEqual(self.email, self.test_user.get_short_name())
def test_unicode(self):
self.assertEqual(self.username, self.test_user.__unicode__())
Grazie per qualsiasi ingresso.