def __get_product(context, corpuser_name, name): pool_product_id = get_pool_product_id_by_name(name, corpuser_name) #product_model = bdd_util.exec_sql("select * from product_product where name = %s", [name])[0] #pool_product_model = bdd_util.exec_sql("select * from product_pool_product where product_id = %s", [product_model['id']])[0] data = {"id": pool_product_id} response = context.client.get('product.product', data) bdd_util.assert_api_call_success(response) resp_data = response.data base_info = resp_data['base_info'] product = { "id": resp_data['id'], "name": base_info['name'], "promotion_title": base_info['promotion_title'], "detail": base_info['detail'], "thumbnail": base_info['thumbnail'], "shelve_type": u"上架" if base_info['shelve_type'] == 'on_shelf' else u"下架" } #处理category category = resp_data['category'] product['category'] = category['name'] if category else '' #处理媒体信息 product['medias'] = resp_data['medias'] #处理标签 product['labels'] = [label['name'] for label in resp_data['labels']] #处理规格信息 skus = resp_data['skus'] name2sku = {} for sku in skus: sku['price'] = bdd_util.format_price(sku['price']) sku['cost_price'] = bdd_util.format_price(sku['cost_price']) name = sku['name'] if name != 'standard': name = ' '.join([ property_value['text'] for property_value in sku['property_values'] ]) name2sku[name] = sku product['skus'] = name2sku return product
def step_impl(context, user_name, imoney_code): data = {"imoney_code": imoney_code, 'view_corp_account': True} resp = context.client.get('ginger-finance:imoney.balance', data) bdd_util.assert_api_call_success(resp) actual = bdd_util.format_price(resp.data) expected = json.loads(context.text)['balance'] assert expected == actual, "e(%d) != a(%d)" % (expected, actual)
def __get_format_products(products): datas = [] for product in products: data = {} data['name'] = product['base_info']['name'] data['type'] = product['type'] #分类 if 'categories' in product: data['categories'] = ','.join( [category['name'] for category in product['categories']]) else: data['categories'] = '' #处理规格信息 skus = product['skus'] name2sku = {} for sku in skus: sku['price'] = bdd_util.format_price(sku['price']) sku['cost_price'] = bdd_util.format_price(sku['cost_price']) name = sku['name'] if name != 'standard': name = ' '.join([ property_value['text'] for property_value in sku['property_values'] ]) name2sku[name] = sku data['skus'] = name2sku data['thumbnail'] = product['base_info']['thumbnail'] data['status'] = product['status'] if data['status'] == 'on_pool': data['status'] = u'未入库' elif data['status'] == 'off_shelf': data['status'] = u'已入库' elif data['status'] == 'on_shelf': data['status'] = u'已上架' datas.append(data) return datas
def step_impl(context, user): response = context.client.get("mall.shopping_cart", {}) bdd_util.assert_api_call_success(response) actual = response.data for product_group in actual['product_groups']: #product_group['supplier'] = product_group['supplier']['name'] for product in product_group['products']: product['count'] = product['purchase_count'] product['sku'] = product['sku_display_name'] product['price'] = bdd_util.format_price(product['price']) for product in actual['invalid_products']: product['count'] = product['purchase_count'] product['sku'] = product['sku_display_name'] expected = json.loads(context.text) bdd_util.assert_dict(expected, actual)
def step_impl(context, webapp_user_name): latest_order_bid = get_latest_order_bid() response = context.client.get("order.order", { "bid": latest_order_bid }) bdd_util.assert_api_call_success(response) order_data = response.data actual = { 'bid': order_data['bid'], 'status': STATUS2STR[order_data['status']], 'message': order_data['message'], 'final_money': bdd_util.format_price(order_data['final_money']), #'postage': order_data['postage'], 'delivery_items': [], 'imoneys': [] } for resource in order_data['resources']: if resource['type'] != 'imoney': continue actual['imoneys'].append({ 'code': resource['code'], 'count': bdd_util.format_price(resource['count']), 'deduction_money': bdd_util.format_price(resource['deduction_money']) }) for delivery_item in order_data['invoices']: ship_info = delivery_item['ship_info'] area = ship_info['area'] delivery_item_data = { 'status': STATUS2STR[delivery_item['status']], 'ship_name': ship_info['name'], 'ship_tel': ship_info['phone'], 'ship_address': ship_info['address'], 'ship_area': '%s %s %s' % (area['province']['name'], area['city']['name'], area['district']['name']), 'final_money': bdd_util.format_price(delivery_item['final_money']), 'product_price': bdd_util.format_price(delivery_item['product_price']), 'postage': bdd_util.format_price(delivery_item['postage']) } # build product data products = [] for product_data in delivery_item['products']: products.append({ 'name': product_data['name'], 'price': bdd_util.format_price(product_data['price']), 'count': product_data['count'], 'sku': product_data['sku_display_name'] }) delivery_item_data['products'] = products # build imoney data imoneys = [] for resource in order_data['resources']: if resource['type'] != 'imoney': continue imoneys.append({ 'code': resource['code'], 'count': bdd_util.format_price(resource['count']), 'deduction_money': bdd_util.format_price(resource['deduction_money']) }) delivery_item_data['imoneys'] = imoneys actual['delivery_items'].append(delivery_item_data) expected = json.loads(context.text) bdd_util.assert_dict(expected, actual)