def setUp(self):
        print("setUp test env")

        # init test env
        self.app = create_app()
        db.create_all()

        # init user data
        user = User(user_name="atushi",
                    user_mail="*****@*****.**",
                    user_password="******")

        user2 = User(user_name="John",
                     user_mail="*****@*****.**",
                     user_password="******")

        # init currency data
        ctypt = Crypt(crypt_id=1, crypt_name="BTC")

        self.portfolio_service = PortfolioService()

        db.session.add(user)
        db.session.commit()
        db.session.add(user2)
        db.session.commit()

        db.session.add(ctypt)
        db.session.commit()
    def update(self, form_data, user_id):
        """
        Update user data
        """
        user = User.update_user_info(user_id)

        if not user:
            return False

        validator = UserCreateValidator()

        error = validator.validate(form_data)
        if not error:
            return error

        error = validator.user_form_validation(form_data)
        if not error:
            return error

        try:
            user.user_name = form_data["username"]
            user.user_mail = form_data["email"]
            user.user_password = form_data["password"]
            db.session.commit()
        except SQLAlchemyError:
            db.session.rollback()
            return False

        return True
    def delete_currency_data(self, user_id, currency_name):
        """
        Delete currency from portfolio
        """

        delete_flag = False
        # get user info
        user = User.update_user_info(user_id)
        # get currency data
        user_data = user.crypts
        try:
            for i, name in enumerate(user_data):
                if name.crypt_name == currency_name:
                    del user_data[i]
                    delete_flag = True

            if not delete_flag:
                return False

            db.session.add(user)
            db.session.commit()
        except SQLAlchemyError:
            db.session.rollback()
            return False

        return True
 def login(self, form_data):
     """
     Login if user was already registered
     """
     # check user is already existing in db
     return User.find_user_info(form_data["username"], form_data["email"],
                                form_data["password"])
    def get_user_info_by_user_id(self, user_id):
        """
        Get user information for showing info in user desplay
        """
        user = User.update_user_info(user_id)

        return user
    def setUp(self):
        print("setUp test env")

        # init test env
        self.app = create_app()
        db.create_all()

        self.user = User()

        # init user data
        self.test_user = User(user_id=1,
                              user_name="test",
                              user_mail="*****@*****.**",
                              user_password="******")
        db.session.add(self.test_user)
        db.session.commit()
Пример #7
0
    def validate(self, form_data):
        """
        Check duplicate data in User table
        """
        exist_user = User.find_user_email_and_name(form_data["username"],
                                                   form_data["email"])

        return exist_user
    def get_user_info_by_email(self, email):
        """
        Get user information by eamil for reset password
        """
        user = User.get_useid_by_email(email)

        if not user:
            return False
        return user
    def get_user_info_by_user_id(self, user_id):
        """
        Get user infomation for showing info in user desplay
        """
        user = User.update_user_info(user_id)

        if not user:
            return "Can't find user"

        return user
    def validate(self, user_id, crypt_name):
        """
        Check currency name is in db
        """
        crypt = Crypt.find_currency_name(crypt_name)
        # get user info
        user = User.update_user_info(user_id)

        if crypt is not None and user != False:
            return user, crypt
        return False
Пример #11
0
 def setUp(self):
     print("setUp test env")
     # init test env
     self.app = create_app()
     db.create_all()
     self.user_create_validator = UserCreateValidator()
     # init user data
     user = User(user_name="atushi",
                 user_mail="*****@*****.**",
                 user_password="******")
     db.session.add(user)
     db.session.commit()
    def setUp(self):
        print("setUp test env")
        # init test env
        self.app = create_app()
        db.create_all()
        self.user_service = UserService()

        # init user data
        self.user = User(user_name="Akon",
                         user_mail="*****@*****.**", user_password="******")
        db.session.add(self.user)
        db.session.commit()
    def setUp(self):
        print("setUp test env")

        # init test env
        self.app = create_app()
        db.create_all()

        # init user data
        self.user = User(user_name="atushi",
                         user_mail="*****@*****.**",
                         user_password="******")

        user2 = User(user_name="John",
                     user_mail="*****@*****.**",
                     user_password="******")
        # init currency data
        ctypt = Crypt(crypt_id=1, crypt_name="BTC")
        ctypt2 = Crypt(crypt_id=2, crypt_name="ETH")

        # init user crypto data
        user_crypto = UserCrypt(user_id=1, crypt_id=1, num_of_currency=2)
        user_crypto2 = UserCrypt(user_id=1, crypt_id=2, num_of_currency=2)

        self.crypto_validator = CryptValidation()

        db.session.add(self.user)
        db.session.commit()
        db.session.add(user2)
        db.session.commit()

        db.session.add(ctypt)
        db.session.commit()
        db.session.add(ctypt2)
        db.session.commit()

        db.session.add(user_crypto)
        db.session.commit()

        db.session.add(user_crypto2)
        db.session.commit()
    def send_reset_mail(self, user):
        token = User.get_reset_token(user.user_id)

        msg = Message("Password Reset Request",
                      sender="*****@*****.**", recipients=[user.user_mail])

        msg.body = f'''To reset your password, type the below temp password on Reset password page:
        {"http://localhost:3000/form/resetPassword/" + token}

        If you didn't make this request simply ignore this mail and no change password
        '''

        mail.send(msg)
        print("complete sending email")
Пример #15
0
    def setUp(self):
        print("setUp test env")

        # init test env
        app = create_app()
        self.client = app.test_client()

        # init session
        with self.client.session_transaction() as session:
            session['user_id'] = 1
            session['login'] = True

        db.create_all()

        # init user data
        self.user = User(user_name="atushi",
                         user_mail="*****@*****.**",
                         user_password="******")

        # init currency data
        ctypt = Crypt(crypt_id=1, crypt_name="BTC")
        ctypt2 = Crypt(crypt_id=2, crypt_name="ETH")

        # init user crypto data
        user_crypto = UserCrypt(user_id=1, crypt_id=1, num_of_currency=2)

        # init user data
        self.exist_user = {
            "username": "******",
            "email": "*****@*****.**",
            "password": "******",
            "confirmPassword": "******"
        }
        self.non_exist_user = {
            "username": "******",
            "email": "*****@*****.**",
            "password": "******",
            "confirmPassword": "******"
        }

        db.session.add(self.user)
        db.session.commit()

        db.session.add(ctypt)
        db.session.commit()
        db.session.add(ctypt2)
        db.session.commit()

        db.session.add(user_crypto)
        db.session.commit()
    def login(self, form_data):
        """
        Login if user was already registered
        """

        validator = UserCreateValidator()

        error = validator.user_form_validation(form_data)
        if not error:
            return error

        # check user is already existing in db
        return User.find_user_info(form_data["username"],
                                   form_data["email"],
                                   form_data["password"])
    def update(self, form_data, user_id):
        """
        Update user data
        """
        user = User.update_user_info(user_id)

        if not user:
            return "Can't find user id"

        try:
            user.user_name = form_data["new_username"]
            user.user_mail = form_data["new_email"]
            user.user_password = form_data["new_password"]
            db.session.commit()
        except SQLAlchemyError:
            db.session.rollback()
            return "db error"

        return True
    def delete(self, user_id):
        """
        Delete user data
        """
        user = User.delete_user_info(user_id)
        user_portfolio = user.crypts

        try:
            user_portfolio.clear()
            db.session.add(user)
            db.session.commit()
            db.session.delete(user)
            db.session.commit()

        except SQLAlchemyError:
            db.session.rollback()
            return False

        return True
 def validate_portfolio_data(self, user_id):
     """
     Check user has currency data in db
     """
     # get current portfolio info
     name_of_currency_list = []
     num_of_currency_list = []
     currency = []
     user = User.update_user_info(user_id)
     user_data = user.crypts
     num_data = user.user_crypt
     if not user_data:
         return False
     for name, num in zip(user_data, num_data):
         name_of_currency_list.append(name.crypt_name)
         num_of_currency_list.append(num.num_of_currency)
     currency.append(name_of_currency_list)
     currency.append(num_of_currency_list)
     return currency
    def register(self, form_data):
        """
        Insert user data to User table
        """
        validator = UserCreateValidator()

        error = validator.validate(form_data)
        if error != True:
            return error

        try:
            user = User(user_name=form_data["username"],
                        user_mail=form_data["email"],
                        user_password=form_data["password"])
            db.session.add(user)
            db.session.commit()
        except SQLAlchemyError:
            db.session.rollback()
            return "db error"

        return True
    def delete(self, form_data, user_id):
        """
        Delete user data
        """
        user = User.delete_user_info(user_id, form_data["username"],
                                     form_data["email"], form_data["password"])
        if not user:
            return "User information doesn't match try again"
        user_portfolio = user.crypts

        try:
            user_portfolio.clear()
            db.session.add(user)
            db.session.commit()
            db.session.delete(user)
            db.session.commit()

        except SQLAlchemyError:
            db.session.rollback()
            return "db error"

        return True
    def update_currency_data(self, user_id, currency_name, num_hold):
        """
        update currency information
        """
        # get user info
        user = User.update_user_info(user_id)
        # get currency data
        user_data = user.crypts
        num_data = user.user_crypt

        try:

            for name, num in zip(user_data, num_data):
                if name.crypt_name == currency_name:
                    num.num_of_currency = num_hold
                    break
            db.session.commit()

        except SQLAlchemyError:
            db.session.rollback()
            return False

        return True
 def reset_password_by_token(self, token):
     return User.vertify_reset_token(token)
class TestUserDB(unittest.TestCase):
    def setUp(self):
        print("setUp test env")

        # init test env
        self.app = create_app()
        db.create_all()

        self.user = User()

        # init user data
        self.test_user = User(user_id=1,
                              user_name="test",
                              user_mail="*****@*****.**",
                              user_password="******")
        db.session.add(self.test_user)
        db.session.commit()

    def tearDown(self):
        print("tearDown")
        db.session.remove()
        db.drop_all()

    def test_filter_register_user_email_and_name(self):
        # Valid data
        res = self.user.find_user_email_and_name(name="test",
                                                 email="*****@*****.**")

        self.assertFalse(res)

        # exist name in db
        res = self.user.find_user_email_and_name(name="noexist",
                                                 email="*****@*****.**")

        self.assertFalse(res)

        # exist email in db
        res = self.user.find_user_email_and_name(name="test",
                                                 email="*****@*****.**")

        self.assertFalse(res)

        # non exist user name and email in db
        res = self.user.find_user_email_and_name(name="noexist",
                                                 email="*****@*****.**")

        self.assertTrue(res)

    def test_find_login_user_data(self):

        # user put correct user info
        user = self.user.find_user_info(name="test",
                                        mail="*****@*****.**",
                                        password="******")

        self.assertEqual(user, self.test_user)

        # user put wrong name
        res = self.user.find_user_info(name="aaaa",
                                       mail="*****@*****.**",
                                       password="******")

        self.assertFalse(res)

        # user put wrong email
        res = self.user.find_user_info(name="test",
                                       mail="*****@*****.**",
                                       password="******")

        self.assertFalse(res)

        # user put wrong password
        res = self.user.find_user_info(name="test",
                                       mail="*****@*****.**",
                                       password="******")

        self.assertFalse(res)

    def test_find_user_by_id(self):
        user = self.user.update_user_info(user_id=1)

        self.assertEqual(user, self.test_user)

        user = self.user.delete_user_info(user_id=1)
        self.assertEqual(user, self.test_user)

    def test_get_user_by_email(self):

        user = self.user.get_useid_by_email(email="*****@*****.**")
        self.assertEqual(user, self.test_user)

        # non exist email in db
        res = self.user.get_useid_by_email(email="*****@*****.**")
        self.assertFalse(res)