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)
Esempio n. 2
0
    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': '******'}
Esempio n. 3
0
    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()
Esempio n. 4
0
 def test_hash_is_created(self):
     hash = create_password_hash('password')
     self.assertTrue(isinstance(hash, str))
     self.assertTrue(hash.startswith('$pbkdf2-sha256$'))
Esempio n. 5
0
 def test_password_does_not_match_hash(self):
     hash = create_password_hash('password')
     self.assertFalse(check_password('wrong', hash))
Esempio n. 6
0
 def test_password_matches_hash(self):
     hash = create_password_hash('password')
     self.assertTrue(check_password('password', hash))