def execute(self, request, presenter): """ :param request: :param presenter: :return: """ username = request['username'] password = request['password'] response = {'user_created': False, 'username': username, 'errors': {}} is_valid, errors = validation.validate( {'username': username}, self._validation_schema ) if errors: response['errors'] = errors elif context.user_repo.exists(username): LOGGER.info("create_user: user '{}' already exists".format(username)) response['errors'] = {'username': ['That username is taken']} else: user = User(username) user.password_hash = create_password_hash(password) context.user_repo.save(user) response['user_created'] = True presenter.present(response)
def setUp(self): super().setUp() self.uc = CreateUserUseCase() self.presenter_spy = PresenterSpy() self.user = User('user') self.user.password_hash = create_password_hash('password') context.user_repo.save(self.user) self.request = {'username': '******', 'password': '******'}
def setUp(self): super().setUp() self.user = User('user') self.user.password_hash = create_password_hash('password') context.user_repo.save(self.user) self.uc = AuthenticateUserUseCase() self.uc.user_id = self.user.id self.uc.password = '******' self.presenter_spy = PresenterSpy()
def test_hash_is_created(self): hash = create_password_hash('password') self.assertTrue(isinstance(hash, str)) self.assertTrue(hash.startswith('$pbkdf2-sha256$'))
def test_password_does_not_match_hash(self): hash = create_password_hash('password') self.assertFalse(check_password('wrong', hash))
def test_password_matches_hash(self): hash = create_password_hash('password') self.assertTrue(check_password('password', hash))