コード例 #1
0
def step_impl(context, user):
	resp = context.client.get("mall.default_ship_info")
	bdd_util.assert_api_call_success(resp)
	actual = resp.data

	expected = json.loads(context.text)
	bdd_util.assert_dict(expected, actual)
コード例 #2
0
def step_impl(context, user, name):
    params = json.loads(context.text)
    id = get_product_label_id_by_name(name)
    params['id'] = id

    resp = context.client.post("product.label", params)
    bdd_util.assert_api_call_success(resp)
コード例 #3
0
def step_impl(context, user, name):
    params = json.loads(context.text)
    id = get_product_category_id_by_name(name)
    params['id'] = id

    resp = context.client.post("ginger-mall:product.category", params)
    bdd_util.assert_api_call_success(resp)
コード例 #4
0
def step_impl(context, user, product_name, label_name):
    product_id = get_pool_product_id_by_name(product_name)
    label_id = get_product_label_id_by_name(label_name)

    data = {"product_id": product_id, "label_id": label_id}
    response = context.client.delete('product.labeled_product', data)
    bdd_util.assert_api_call_success(response)
コード例 #5
0
def step_impl(context, corp_user):
    product = json.loads(context.text)
    pool_product_id = get_pool_product_id_by_name(product['name'], corp_user)
    sku = get_sku_name_from_display_name(product['sku'])

    price_infos = None
    if 'price' in product:
        price_infos = [{'sku': sku, 'price': product['price']}]

    supplier_price_infos = None
    if 'supplier_price' in product:
        supplier_price_infos = [{
            'sku': sku,
            'price': product['supplier_price']
        }]

    data = {
        "id": pool_product_id,
    }
    if price_infos:
        data['price_infos'] = json.dumps(price_infos)
    if supplier_price_infos:
        data['supplier_price_infos'] = json.dumps(supplier_price_infos)

    response = context.client.post('product.pool_product_price', data)
    bdd_util.assert_api_call_success(response)
コード例 #6
0
def step_impl(context, webapp_user_name):
	latest_order_bid = get_latest_order_bid()

	response = context.client.put("order.payed_order", {
		"bid": latest_order_bid
	})
	bdd_util.assert_api_call_success(response)
コード例 #7
0
def __get_products(context, corp_name, type_name=u'在售', options={}):
    TYPE2URL = {
        u'待售': 'product.offshelf_products',
        u'在售': 'product.onshelf_products',
        u'分类': 'product.category_products',
        u'手机上分类': 'mall.category_products',
        u'平台': 'product.platform_pool_products',
        u'标签': 'product.labeled_products'
    }

    # if type_name == u'平台':
    # 	#print json.dumps(response.data, indent=2)
    # 	print products
    # 	raw_input()

    url = TYPE2URL[type_name]

    params = {}
    if type_name == u'分类' or type_name == u'手机上分类':
        params['category_id'] = options['category_id']
    if type_name == u'标签':
        params['label_id'] = options['label_id']
    response = context.client.get(url, params)
    bdd_util.assert_api_call_success(response)

    products = __get_format_products(response.data["products"])
    return products
コード例 #8
0
def step_impl(context, corp_user):
	latest_invoice_bid = get_latest_invoice_bid()

	response = context.client.put("order.confirmed_invoice", {
		"bid": latest_invoice_bid
	})
	bdd_util.assert_api_call_success(response)
コード例 #9
0
def get_area_code_by_name(client, name):
	resp = client.get('area.area_code', {
		'name': name
	})
	bdd_util.assert_api_call_success(resp)

	return resp.data
コード例 #10
0
def step_impl(context, user):
    expected = json.loads(context.text)
    resp = context.client.get("product.labels")
    actual = resp.data["labels"]

    bdd_util.assert_api_call_success(resp)
    bdd_util.assert_list(expected, actual)
コード例 #11
0
def step_impl(context, user):
	context.client = bdd_client.login('app', user, password=None, context=context)
	resp = context.client.post('ginger-account:user.user', {
		'id': context.client.cur_user_id,
		'avatar': 'http://resource.vxiaocheng.com/ginger/girls/%s.jpg' % user
	})
	bdd_util.assert_api_call_success(resp)
コード例 #12
0
def step_impl(context, user, count):
	response = context.client.get("mall.shopping_cart_product_count", {})
	bdd_util.assert_api_call_success(response)

	actual = response.data['count']

	expected = int(count)
	assert expected == actual, 'expected(%d) != actual(%d)' % (expected, actual)
コード例 #13
0
def step_impl(context, user, address):
	params = json.loads(context.text)
	id = get_ship_info_id_by_address(address)
	params['id'] = id
	params['action'] = json.loads(context.text)['action']

	resp = context.client.post("mall.ship_info_display_index", params)
	bdd_util.assert_api_call_success(resp)
コード例 #14
0
def step_impl(context, user, value):
	expected = json.loads(context.text)
	id, property_id = get_product_property_value_by_value(value)
	resp = context.client.delete("product.property_value", {"id": id, "property_id": property_id})
	if not expected.get("error_code"):
		bdd_util.assert_api_call_success(resp)
	else:
		bdd_util.assert_api_call_failed(resp, expected.get("error_code"))
コード例 #15
0
def step_impl(context, user, name):
    id = get_product_id_by_name(name)
    action = json.loads(context.text)["action"]
    resp = context.client.post("product.product_index", {
        "id": id,
        "action": action
    })
    bdd_util.assert_api_call_success(resp)
コード例 #16
0
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)
コード例 #17
0
def step_impl(context, user):
	input_datas = json.loads(context.text)
	for product_name in input_datas:
		shopping_cart_item_id = get_shopping_cart_item_id_by_product_name(product_name)

		data = {
			'id': shopping_cart_item_id
		}
		response = context.client.delete('mall.shopping_cart_item', data)
		bdd_util.assert_api_call_success(response)
コード例 #18
0
def create_corp(context, corp_name, username):
    """
	创建门店
	"""
    response = context.client.put('ginger-account:corp.corp', {
        "corp_name": corp_name,
        "username": username,
        "password": "******"
    })
    bdd_util.assert_api_call_success(response)
コード例 #19
0
def step_impl(context, user, product_name):
    product_id = get_pool_product_id_by_name(product_name)

    input_datas = json.loads(context.text)
    label_ids = []
    for label_name in input_datas:
        label_ids.append(get_product_label_id_by_name(label_name))

    data = {"product_id": product_id, "label_ids": json.dumps(label_ids)}
    response = context.client.put('product.labeled_product', data)
    bdd_util.assert_api_call_success(response)
コード例 #20
0
def step_impl(context, webapp_user_name, status):
	latest_invoice_bid = get_latest_invoice_bid()

	response = context.client.get("order.order_status", {
		"bid": latest_invoice_bid
	})
	bdd_util.assert_api_call_success(response)

	actual = STATUS2STR[response.data['status']]
	expected = status
	assert actual == expected, u"actual(%s) != expected(%s)" % (actual, expected)
コード例 #21
0
def step_impl(context, user, product_name):
    product = __get_product(context, user, product_name)

    update_data = json.loads(context.text)
    for key, value in update_data.items():
        product[key] = value
    data = __format_product_post_data(context, product)
    data['id'] = product['id']

    response = context.client.post('product.product', data)
    bdd_util.assert_api_call_success(response)
コード例 #22
0
def step_impl(context, user):
	expected = json.loads(context.text)
	resp = context.client.get("product.corp_product_properties")
	bdd_util.assert_api_call_success(resp)

	actual = resp.data["product_properties"]
	for property_item in actual:
		for value_item in property_item['values']:
			value_item['image'] = value_item['image']
			value_item['name'] = value_item['text']

	bdd_util.assert_list(expected, actual)
コード例 #23
0
def step_impl(context, user, address):
	params = json.loads(context.text)
	id = get_ship_info_id_by_address(address)
	params['id'] = id

	#处理area
	area_name = params["area"]
	area_code = get_area_code_by_name(context.client, area_name)
	params['area_code'] = area_code

	resp = context.client.post("mall.ship_info", params)
	bdd_util.assert_api_call_success(resp)
コード例 #24
0
def step_impl(context, user, amount, imoney_code):
    user_id = step_util.get_user_id_by_name(context.client, user)

    data = {
        "source_user_id": 0,  #client.cur_user_id,
        "dest_user_id": user_id,
        "imoney_code": imoney_code,
        "amount": int(amount) * 100,
        "bid": "bdd"
    }
    resp = context.client.put('ginger-finance:imoney.transfer', data)
    bdd_util.assert_api_call_success(resp)
コード例 #25
0
def step_impl(context, user, category_name):
    expected = json.loads(context.text)
    father_id = get_product_category_id_by_name(
        category_name) if category_name != u'一级' else 0
    resp = context.client.get("ginger-mall:mall.sub_categories",
                              {"father_id": father_id})
    actual = [
        category for category in resp.data["categories"]
        if category['is_enabled']
    ]

    bdd_util.assert_api_call_success(resp)
    bdd_util.assert_list(expected, actual)
コード例 #26
0
def step_impl(context, webapp_user_name):
	latest_invoice_bid = get_latest_invoice_bid()

	response = context.client.put("order.finished_invoice", {
		"bid": latest_invoice_bid
	})
	bdd_util.assert_api_call_success(response)

	# 发起结算
	response = context.client.put("ginger-finance:clearance.order_clearance", {
		"bid": latest_invoice_bid,
		"sync": True
	})
	bdd_util.assert_api_call_success(response)
コード例 #27
0
def step_impl(context, user, corp_name):
	input_datas = json.loads(context.text)
	for product_data in input_datas:
		pool_product_id = get_pool_product_id_by_name(product_data['name'], context.corp['id'])
		sku_name = product_steps.get_sku_name_from_display_name(product_data.get('sku', 'standard'))

		data = {
			'pool_product_id': pool_product_id,
			'count': product_data['count'],
			'sku_name': sku_name
		}
		response = context.client.put('mall.shopping_cart_item', data)
		bdd_util.assert_api_call_success(response)
		time.sleep(0.1)
コード例 #28
0
def step_impl(context, user):
    products = json.loads(context.text)
    if isinstance(products, dict):
        products = [products]
    for product in products:
        data = {
            'name': product['name'],
            'skus': json.dumps([{
                'name': 'standard',
                'price': product['price']
            }])
        }
        response = context.client.put('product.virtual_product', data)
        bdd_util.assert_api_call_success(response)
コード例 #29
0
def step_impl(context, user, shelf_name):
    product_names = json.loads(context.text)
    pool_product_ids = []
    for product_name in product_names:
        pool_product_id = get_pool_product_id_by_name(product_name, user)
        pool_product_ids.append(pool_product_id)

    if shelf_name == u'在售':
        data = {'product_ids': json.dumps(pool_product_ids)}
        response = context.client.put('product.onshelf_products', data)
        bdd_util.assert_api_call_success(response)
    elif shelf_name == u'待售':
        data = {'product_ids': json.dumps(pool_product_ids)}
        response = context.client.put('product.offshelf_products', data)
        bdd_util.assert_api_call_success(response)
コード例 #30
0
    def create_product_category(category, parent_category_name=None):
        for category_name, sub_categories in category.items():
            post_data = {
                "name":
                category_name,
                "father_id":
                get_product_category_id_by_name(parent_category_name)
                if parent_category_name else 0
            }
            resp = context.client.put("ginger-mall:product.category",
                                      post_data)
            bdd_util.assert_api_call_success(resp)

            if len(sub_categories) > 0:
                for sub_category in sub_categories:
                    create_product_category(sub_category, category_name)