# -*- coding: utf-8 -*- """Test forms.""" from harambee_led_bord.public.forms import LoginForm from harambee_led_bord.user.forms import RegisterForm class TestRegisterForm: """Register form.""" def test_validate_user_already_registered(self, user): """Enter username that is already registered.""" form = RegisterForm( username=user.username, email="foo@bar.com", password="example", confirm="example", ) assert form.validate() is False assert "Username already registered" in form.username.errors def test_validate_email_already_registered(self, user): """Enter email that is already registered.""" form = RegisterForm( username="unique", email=user.email, password="example", confirm="example" ) assert form.validate() is False assert "Email already registered" in form.email.errors def test_validate_success(self, db): """Register with success.""" form = RegisterForm( username="newusername", email="new@test.test", password="example", confirm="example", ) assert form.validate() is True class TestLoginForm: """Login form.""" def test_validate_success(self, user): """Login successful.""" user.set_password("example") user.save() form = LoginForm(username=user.username, password="example") assert form.validate() is True assert form.user == user def test_validate_unknown_username(self, db): """Unknown username.""" form = LoginForm(username="unknown", password="example") assert form.validate() is False assert "Unknown username" in form.username.errors assert form.user is None def test_validate_invalid_password(self, user): """Invalid password.""" user.set_password("example") user.save() form = LoginForm(username=user.username, password="wrongpassword") assert form.validate() is False assert "Invalid password" in form.password.errors def test_validate_inactive_user(self, user): """Inactive user.""" user.active = False user.set_password("example") user.save() # Correct username and password, but user is not activated form = LoginForm(username=user.username, password="example") assert form.validate() is False assert "User not activated" in form.username.errors