diff --git a/access/serializers.py b/access/serializers.py index 99a9091..e33b3f6 100644 --- a/access/serializers.py +++ b/access/serializers.py @@ -118,9 +118,9 @@ class UserEmailSerializer(serializers.Serializer): def validate_email(self, email): self.user = get_object_or_404(get_user_model(), email=email) if not self.user.is_active: - raise serializers.ValidationError('Учетная запись еще не активирована.') - if not self.user: - raise serializers.ValidationError('Email не зарегистрирован.') + raise serializers.ValidationError( + 'Учетная запись еще не активирована. ' + 'Пользователь должен сначала подтвердить свой email.') return email def save(self): diff --git a/tests/fixtures/users.py b/tests/fixtures/users.py index 4b6a9b4..8116bd7 100644 --- a/tests/fixtures/users.py +++ b/tests/fixtures/users.py @@ -40,3 +40,21 @@ def user_student(): is_active=True, ) 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 diff --git a/tests/test_user.py b/tests/test_user.py index 25622a2..b85b636 100644 --- a/tests/test_user.py +++ b/tests/test_user.py @@ -55,3 +55,20 @@ def test_generate_password_by_manager(mocked_send_mail, staff_client, data=wrong_email, 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 + )