def test_password_verification(self): u = UserModel( login='******', email='*****@*****.**', password='******') self.assertTrue(u.verify_password('test')) self.assertFalse(u.verify_password('dog'))
def test_password_salts_are_random(self): user1 = UserModel( login='******', email='*****@*****.**', password='******') user2 = UserModel( login='******', email='*****@*****.**', password='******') self.assertTrue(user1.password_hash != user2.password_hash)
def test_full_name(self): user = UserModel(login='******', email='*****@*****.**', password='******', name="Test", surname="User") self.assertTrue(user.full_name == 'Test User')
def test_password_getter(self): user = UserModel( login='******', email='*****@*****.**', password='******') with self.assertRaises(AttributeError): user.password
def check_login(self, login): user = UserModel.get_by_login(self.db, login) if user: logger.warning(f"Can't register user. " f"User with login: {login} already exists") raise InvalidRequestData(ErrorCode.LOGIN_ALREADY_EXISTS, message=f"User with login " f"{login} already exists")
def test_role_of_user(self): user = UserModel( login='******', email='*****@*****.**', password='******', role='10') self.assertTrue(user.role == UserModel.OWNER) self.assertFalse(user.role == UserModel.PARTNER) self.assertFalse(user.role == UserModel.ADMIN)
def check_email_validity(self, email: str): user = UserModel.get_by_email(db=self.db, email=email) if user: logger.warning(f"In {self.__class__.__name__}. " f"Can't register user. " f"User with email: {email} already exists") raise InvalidRequestData(ErrorCode.EMAIL_ALREADY_EXISTS, message=f"User with email " f"{email} already exists") if '@' not in email: logger.warning(f"In {self.__class__.__name__}. " f"Can't register user. Invalid email: {email}") raise InvalidRequestData(ErrorCode.INVALID_EMAIL, message="Incorrect email address")
def register(self, data): self.check_email_validity(data["email"]) self.check_login(data["login"]) user = UserModel(**data) return user
def test_full_name_without_name(self): user = UserModel(login='******', email='*****@*****.**', password='******', surname="Test") self.assertTrue(user.surname == 'Test')
def test_password_setter(self): user = UserModel(login='******', email='*****@*****.**', password='******') self.assertTrue(user.password_hash is not None)