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')
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)
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))
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))