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)
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)
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)
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)
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)
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
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)
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)
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
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)
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"))
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)