def test_add_cart(self):
        db = DAOUtils.get_db()

        response = self.app.post('/cart', data=json.dumps(dict(user_id='', item_id=0, amount=0)),
                                 headers={"Content-Type": "application/json"})
        self.assertEqual(response.status_code, 404, 'User ID Empty Response Error')

        account = 'leo.li'
        password = '******'
        user = DAOUtils.get_user_dao().get_user(db, condition="ACCOUNT = '{ACCOUNT}' AND PASSWORD = '******'",
                                                ACCOUNT=account,
                                                PASSWORD=md5(password.encode('utf-8')).hexdigest())

        user_id = user.USER_ID
        item_id = 1
        amount = 10

        item = DAOUtils.get_product_dao().get_product(db, condition="ITEM_ID = '{ITEM_ID}'", ITEM_ID=item_id)
        cart = DAOUtils.get_cart_dao().get_carts(db, condition="USER_ID = '{USER_ID}' AND ITEM_ID = '{ITEM_ID}'",
                                                 USER_ID=user_id, ITEM_ID=item_id)

        response = self.app.post('/cart', data=json.dumps(dict(
            user_id=user_id,
            item_id=item_id,
            amount=amount
        )), headers={"Content-Type": "application/json"})

        if item:
            if cart and cart[0]:
                self.assertEqual(response.status_code, 406, 'Cart Existed Response Error')
            else:
                self.assertEqual(response.status_code, 201, 'Cart Add Response Error')
        else:
            self.assertEqual(response.status_code, 406, 'Item Not Found Response Error')

        amount = 999999999
        response = self.app.post('/cart', data=json.dumps(dict(
            user_id=user_id,
            item_id=item_id,
            amount=amount
        )), headers={"Content-Type": "application/json"})

        self.assertEqual(response.status_code, 403, 'Item Amount Not Enough Response Error')
Example #2
0
 def get_user(account):
     """
     Get User Info
     :param account:the account of user
     :return:Response
     """
     db = DAOUtils.get_db()
     user = DAOUtils.get_user_dao().get_user(db,
                                             "ACCOUNT = '{ACCOUNT}'",
                                             ACCOUNT=account)
     if user:
         result = dict()
         result['account'] = user.ACCOUNT
         result['name'] = user.NAME
         result['credit'] = int(user.CREDIT)
         result['created_time'] = int(user.CREATED_TIME)
         result['last_login_time'] = int(user.LAST_LOGIN_TIME)
         DAOUtils.close(db)
         return Flask(__name__).make_response((jsonify(result), 200))
     else:
         DAOUtils.close(db)
         return Flask(__name__).make_response(('', 404))
 def add_user():
     """
     Add New User
     :return:Response
     """
     db = DAOUtils.get_db()
     input_json = request.get_json()
     user = User(account=input_json['account'],
                 pwd=input_json['password'],
                 name=input_json['name'],
                 credit=input_json['credit'])
     try:
         DAOUtils.get_user_dao().insert_user(db, user)
         DAOUtils.commit(db)
         return Flask(__name__).make_response(('', 201))
     except:
         DAOUtils.rollback(db)
         error_result = dict()
         error_result['error'] = str(sys.exc_info())
         return Flask(__name__).make_response((jsonify(error_result), 406))
     finally:
         DAOUtils.close(db)
Example #4
0
    def login():
        """
        User Login
        :return:Response
        """
        db = DAOUtils.get_db()
        input_json = request.get_json()
        user = DAOUtils.get_user_dao().get_user(
            db,
            condition="ACCOUNT = '{ACCOUNT}' AND PASSWORD = '******'",
            ACCOUNT=input_json['account'],
            PASSWORD=md5(input_json['password'].encode('utf-8')).hexdigest())

        if user:
            result = dict()
            result['user_id'] = user.USER_ID
            result['name'] = user.NAME
            user.LAST_LOGIN_TIME = int(round(time.time() * 1000))
            DAOUtils.commit(db)
            DAOUtils.close(db)
            return Flask(__name__).make_response((jsonify(result), 200))
        else:
            DAOUtils.close(db)
            return Flask(__name__).make_response(('', 404))
Example #5
0
    def __get_carts():
        """
        Get Cart Content By User_ID
        :return:Response
        """
        db = DAOUtils.get_db()
        input_json = request.get_json()

        user = DAOUtils.get_user_dao().get_user(
            db,
            condition="USER_ID = '{USER_ID}'",
            USER_ID=input_json['user_id'])
        if user:
            carts = DAOUtils.get_cart_dao().get_carts(
                db, "USER_ID = '{USER_ID}'", USER_ID=input_json['user_id'])
            result = dict()
            item_list = list()
            for cart in carts:
                item_dict = dict()
                item_dict['item_id'] = int(cart.PRODUCT.ITEM_ID)
                item_dict['item_name'] = cart.PRODUCT.ITEM_NM
                item_dict['item_price'] = int(cart.PRODUCT.ITEM_PRICE)
                item_dict['amount'] = int(cart.AMOUNT)
                item_dict['create_time'] = int(cart.PRODUCT.CREATED_TIME)
                item_dict['subtotal'] = int(cart.PRODUCT.ITEM_PRICE *
                                            cart.AMOUNT)
                item_list.append(item_dict)

            DAOUtils.close(db)
            result['total'] = len(carts)
            result['item_list'] = item_list

            return Flask(__name__).make_response((jsonify(result), 200))
        else:
            DAOUtils.close(db)
            return Flask(__name__).make_response(('', 404))