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
Exemple #4
0
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)