add test for generate password for not active user, delete dublicate code

feature/fix_generate_pass
Dmitriy Shesterkin 8 years ago
parent 95fa0a2600
commit 005f27efdc
  1. 6
      access/serializers.py
  2. 18
      tests/fixtures/users.py
  3. 17
      tests/test_user.py

@ -118,9 +118,9 @@ class UserEmailSerializer(serializers.Serializer):
def validate_email(self, email): def validate_email(self, email):
self.user = get_object_or_404(get_user_model(), email=email) self.user = get_object_or_404(get_user_model(), email=email)
if not self.user.is_active: if not self.user.is_active:
raise serializers.ValidationError('Учетная запись еще не активирована.') raise serializers.ValidationError(
if not self.user: 'Учетная запись еще не активирована. '
raise serializers.ValidationError('Email не зарегистрирован.') 'Пользователь должен сначала подтвердить свой email.')
return email return email
def save(self): def save(self):

@ -40,3 +40,21 @@ def user_student():
is_active=True, is_active=True,
) )
return student return student
@pytest.fixture
def user_not_active_student():
"""
Create user as student with data:
email = 'notactivestudent@example.com'
password = 'test'
is_active = False
"""
student = UserFactory(
last_name='Иванов',
first_name='Иван',
email='notactivestudent@example.com',
is_staff=False,
is_active=False,
)
return student

@ -55,3 +55,20 @@ def test_generate_password_by_manager(mocked_send_mail, staff_client,
data=wrong_email, data=wrong_email,
status=status.HTTP_400_BAD_REQUEST status=status.HTTP_400_BAD_REQUEST
) )
@pytest.mark.django_db
def test_generate_password_by_manager_for_not_active_student(staff_client,
user_not_active_student):
"""
Test generate new password from admin area by manager for not active student
"""
data = {
'email': user_not_active_student.email,
}
assert staff_client.post(
reverse('users:management-password'),
data=data,
status=status.HTTP_400_BAD_REQUEST
)

Loading…
Cancel
Save