title: How to test a Django model with pytest?
body: <p>I am getting started with pytest. I have configured pytest, anyway I couldn't found a resource on Django specific testing with pytest. How do I test a model with <code>pytest_django</code>?  </p>
  
  <p>I have already asked a question on unittesting, </p>
  
  <blockquote>
    <p><a href="https://stackoverflow.com/questions/35514054/how-do-i-efficiently-test-this-django-model">how do I efficiently test this Django model?</a></p>
  </blockquote>
  
  <p>I want know how the same tests can be written with py.test?</p>
  
  <p>adding below the model and the tests written in unittest.</p>
  
  <p>the model under test is,</p>
  
  <pre><code>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
  </code></pre>
  
  <p>and the <code>unittest</code> written,</p>
  
  <pre><code>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 = "testuser@testbase.com"
          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__())
  </code></pre>
  
  <p>Thank you for any inputs.</p>