Пример #1
0
 def setUp(self):
   self.user = UserFactory()
   self.user.set_password('asdf')
   self.user.save()
   self.superuser = SuperUserFactory()
   self.superuser.set_password('asdf')
   self.superuser.save()
Пример #2
0
class UserPages(TestCase):
  def setUp(self):
    self.user = UserFactory()
    self.user.set_password('asdf')
    self.user.save()
    self.superuser = SuperUserFactory()
    self.superuser.set_password('asdf')
    self.superuser.save()
    
  def test_new_page(self):
    response = self.client.get(reverse('users:new'))
    
    self.assertContains(response, '<h1>New User</h1>', html=True)
  
  def test_edit_page(self):
    self.assertTrue(self.client.login(username=self.user.username, password='******'))
    response = self.client.get(reverse('users:edit', kwargs={'pk': self.user.pk}), follow=True)

    self.assertContains(response, '<h1>Edit %s</h1>' % self.user.username, html=True)
  
  def test_if_superuser(self):  
    self.client.login(username=self.superuser.username, password='******')
    response = self.client.get(reverse('users:index'))
    
    self.assertContains(response, self.user.username)
    self.assertContains(response, reverse('users:show', kwargs={'pk': self.user.pk}))
  
  def test_create_a_user(self):
    total_users = User.objects.count()
    data = {
      'username': '******',
      'first_name': 'Test',
      'last_name': 'User',
      'email': '*****@*****.**',
      'password1': 'asdf',
      'password2': 'asdf',
    }
    response = self.client.post(reverse('users:create'), data)
    
    self.assertEqual(User.objects.count(), total_users + 1)

  def test_detail_if_correct_user(self):
    response = self.client.get(reverse('users:show', kwargs={'pk': self.user.pk}))
    
    self.assertContains(response, self.user.first_name)
  
  def test_update_if_correct_user(self):
    data = {
      'first_name': 'Attempted change',
      'last_name': self.user.last_name,
      'email': self.user.email,
      '_method': 'put',
    }
    self.client.login(username=self.user.username, password='******')
    response = self.client.post(reverse('users:update', kwargs={'pk': self.user.pk}), data)
    
    self.assertRedirects(response, reverse('users:show', kwargs={'pk': self.user.pk}))
    self.assertEqual(self.user.first_name, 'Attempted change')
    
  def test_delete_if_correct_user(self):
    new_user = UserFactory()
    new_user.set_password('asdf')
    new_user.save()
    total_users = User.objects.count()
    self.client.login(username=new_user.username, password='******')
    response = self.client.post(reverse('users:destroy', kwargs={'pk': new_user.pk}), {'_method': 'delete'})
    
    self.assertRedirects(response, reverse('home'))
    self.assertEqual(User.objects.count(), total_users - 1)
  
  def test_if_not_logged_in(self):
    response = self.client.get(reverse('users:index'))
    
    self.assertRedirects(response, '%s?next=/users/' % reverse('login'))
  
  def test_if_not_superuser(self):
    self.client.login(username=self.user.username, password='******')
    index_response = self.client.get(reverse('users:index'))
    
    self.assertEqual(index_response.status_code, 403)
  
  def test_if_not_correct_user(self):
    wrong_user = UserFactory()
    wrong_user.set_password('asdf')
    wrong_user.save()
    self.client.login(username=wrong_user.username, password='******')
    detail_response = self.client.get(reverse('users:show', kwargs={'pk': self.user.pk}))
    data = {
      'first_name': 'Attempted change',
      'last_name': ':):)',
      'email': '*****@*****.**',
      '_method': 'put',
    }
    update_response = self.client.post(reverse('users:update', kwargs={'pk': self.user.pk}), data)
    delete_response = self.client.post(reverse('users:destroy', kwargs={'pk': self.user.pk}), {'_method': 'delete'})
    
    self.assertEqual(update_response.status_code, 403)
    self.assertEqual(delete_response.status_code, 403)