Пример #1
0
def __get_product(context, corpuser_name, name):
	pool_product_id = get_pool_product_id_by_name(name, corpuser_name)
	data = {
		"id": pool_product_id
	}

	response = context.client.get('ginger-product: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'],
		"shelf_status": u"上架" if base_info['shelf_status'] == '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
Пример #2
0
def step_impl(context, user_name, imoney_code):
	data = {
		"imoney_code": imoney_code
	}
	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)
Пример #3
0
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
Пример #4
0
def step_impl(context, user):
	response = context.client.get("ginger-product:cart.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)
Пример #5
0
def step_impl(context, webapp_user_name):
    latest_order_bid = get_latest_order_bid()

    response = context.client.get("ginger-order: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)