Exemplo n.º 1
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("ginger-product:product.label", params)
	bdd_util.assert_api_call_success(resp)
Exemplo n.º 2
0
def step_impl(context, user):
	expected = json.loads(context.text)
	resp = context.client.get("ginger-product:product.labels")
	actual = resp.data["labels"]

	bdd_util.assert_api_call_success(resp)
	bdd_util.assert_list(expected, actual)
Exemplo n.º 3
0
def step_impl(context, corp_user):
	resp = context.client.get('ginger-crm:customer.customers', {})
	bdd_util.assert_api_call_success(resp)
	actual = resp.data['customers']

	expected = json.loads(context.text)
	bdd_util.assert_list(expected, actual)
Exemplo n.º 4
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('ginger-product:product.pool_product_price', data)
	bdd_util.assert_api_call_success(response)
Exemplo n.º 5
0
def step_impl(context, user, corpuser_name):
    client = RestClient()

    corp_id = step_util.get_corp_id_for_corpuser(client, corpuser_name)

    resp = client.put(
        'ginger-account:login.logined_mall_user', {
            'unionid':
            user,
            'name':
            user,
            'avatar':
            'http://resource.vxiaocheng.com/veeno/demo/girls/%s/avatar.jpg' %
            user,
            'corp_id':
            corp_id
        })
    bdd_util.assert_api_call_success(resp)
    client.jwt_token = resp.data['jwt']
    client.cur_user_id = resp.data['id']

    context.corp = {"username": corpuser_name, "id": corp_id}
    context.client = client

    # 创建客户
    resp = context.client.put('ginger-crm:customer.customer', {})
    bdd_util.assert_api_call_success(resp)
Exemplo n.º 6
0
def get_area_code_by_name(client, name):
	resp = client.get('ginger-account:area.area_code', {
		'name': name
	})
	bdd_util.assert_api_call_success(resp)

	return resp.data
Exemplo n.º 7
0
def step_impl(context, user):
	expected = json.loads(context.text)
	resp = context.client.get("ginger-order:mall.ship_infos")
	actual = resp.data["ship_infos"]

	bdd_util.assert_api_call_success(resp)
	bdd_util.assert_list(expected, actual)
Exemplo n.º 8
0
def step_impl(context, user):
	resp = context.client.get("ginger-order: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)
Exemplo n.º 9
0
def __get_products(context, corp_name, type_name=u'在售', options={}):
	TYPE2URL = {
		u'待售': 'ginger-product:product.offshelf_products',
		u'在售': 'ginger-product:product.onshelf_products',
		u'分类': 'ginger-product:product.category_products',
		u'手机上分类': 'ginger-product:mall.category_products',
		u'平台': 'ginger-product:product.platform_pool_products',
		u'标签': 'ginger-product: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
Exemplo n.º 10
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("ginger-order:mall.ship_info_display_index", params)
	bdd_util.assert_api_call_success(resp)
Exemplo n.º 11
0
def step_impl(context, user, name):
    expected = json.loads(context.text)
    id = get_product_property_id_by_name(name)
    resp = context.client.delete("ginger-product:product.property", {"id": 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"))
Exemplo n.º 12
0
def step_impl(context, user, count):
	response = context.client.get("ginger-product: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)
Exemplo n.º 13
0
def step_impl(context, corp_user, customer_name):
	resp = context.client.get('ginger-crm:customer.customer', {
		'id': get_customer_id_by_name(customer_name)
	})
	bdd_util.assert_api_call_success(resp)
	actual = resp.data

	expected = json.loads(context.text)
	bdd_util.assert_dict(expected, actual)
Exemplo n.º 14
0
def step_impl(context, corp_user):
	input_data = json.loads(context.text)
	resp = context.client.put('ginger-crm:point.point_rule', {
		"name": input_data['name'],
		'type': input_data['type'],
		'point': input_data['point'],
		'data': json.dumps(input_data['data'])
	})
	bdd_util.assert_api_call_success(resp)
Exemplo n.º 15
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('ginger-product:product.labeled_product', data)
	bdd_util.assert_api_call_success(response)
Exemplo n.º 16
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('ginger-product:cart.cart_item', data)
		bdd_util.assert_api_call_success(response)
Exemplo n.º 17
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)
Exemplo n.º 18
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-product:product.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)
Exemplo n.º 19
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)
Exemplo n.º 20
0
def step_impl(context, webapp_user_name, status):
    latest_invoice_bid = get_latest_invoice_bid()

    response = context.client.get("ginger-order: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)
Exemplo n.º 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('ginger-product:product.product', data)
	bdd_util.assert_api_call_success(response)
Exemplo n.º 22
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)
Exemplo n.º 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("ginger-order:mall.ship_info", params)
	bdd_util.assert_api_call_success(resp)
Exemplo n.º 24
0
def step_impl(context, user):
    expected = json.loads(context.text)
    resp = context.client.get("ginger-product: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)
Exemplo n.º 25
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-product: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)
Exemplo n.º 26
0
def step_impl(context, webapp_user_name):
    latest_invoice_bid = get_latest_invoice_bid()

    response = context.client.put("ginger-order: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)
Exemplo n.º 27
0
def step_impl(context, corp_user):
    latest_invoice_bid = get_latest_invoice_bid()
    data = {'bid': latest_invoice_bid}

    input_data = json.loads(context.text)
    data['enable_logistics'] = input_data.get('enable_logistics', False)
    data['express_company_name'] = input_data.get('express_company_name', '')
    data['express_number'] = input_data.get('express_number', '')
    data['shipper'] = input_data.get('shipper', u'默认发货人')

    response = context.client.put("ginger-order:order.shipped_invoice",
                                  {'ship_infos': json.dumps([data])})
    bdd_util.assert_api_call_success(response)
Exemplo n.º 28
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,
            'sex': 'female'
        })
    bdd_util.assert_api_call_success(resp)
Exemplo n.º 29
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('ginger-product:product.virtual_product', data)
		bdd_util.assert_api_call_success(response)
Exemplo n.º 30
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('ginger-product:product.labeled_product', data)
	bdd_util.assert_api_call_success(response)