def step_impl(context, user, weapp_user): #获取消息详情的数据并处理 response = context.client.get(bdd_util.nginx(context.detail_url)) realMsgs_data = json.loads(response.content)['data']['items'] actual_data = [] for realMsg_data in realMsgs_data: adict = {} if realMsg_data['is_reply']: adict['member_name'] = realMsg_data['mp_username'] or user else: adict['member_name'] = realMsg_data['sender_username'].split( '_')[0] adict['inf_content'] = realMsg_data['text'] if realMsg_data['is_news_type']: adict['inf_content'] = realMsg_data['news_title'] adict['time'] = bdd_util.get_date_str(realMsg_data['created_at'][:10]) #星标 adict['star'] = realMsg_data['is_collected'] adict['remark'] = realMsg_data['remark'] actual_data.append(adict) expected_datas = json.loads(context.text) for expected_data in expected_datas: expected_data['time'] = bdd_util.get_date_str(expected_data['time']) if expected_data.get('star', ''): expected_data['star'] = True if (expected_data.get('star', True) in ('true', 'yes', 'True', 'Yes', True)) else False bdd_util.assert_list(expected_datas, actual_data)
def step_tmpl(context, webapp_user_name, power_me_rule_name): if hasattr(context, "search_powerme_result"): participances = context.search_powerme_result else: participances = context.participances['data']['items'] actual = [] print(participances) for p in participances: p_dict = OrderedDict() p_dict[u"rank"] = p['ranking'] p_dict[u"member_name"] = p['username'] p_dict[u"powerme_value"] = p['power'] p_dict[u"parti_time"] = bdd_util.get_date_str(p['created_at']) actual.append((p_dict)) print("actual_data: {}".format(actual)) expected = [] if context.table: for row in context.table: cur_p = row.as_dict() if cur_p[u'parti_time']: cur_p[u'parti_time'] = bdd_util.get_date_str( cur_p[u'parti_time']) expected.append(cur_p) else: expected = json.loads(context.text) print("expected: {}".format(expected)) bdd_util.assert_list(expected, actual)
def step_tmpl(context, webapp_user_name, exlottery_name): if hasattr(context, "search_lottery_result"): participances = context.search_lottery_result else: participances = context.participances['data']['items'] actual = [] for p in participances: p_dict = OrderedDict() p_dict[u"member_name"] = p['participant_name'] p_dict[u"mobile"] = p['tel'] p_dict[u"prize_grade"] = p['prize_title'] p_dict[u"prize_name"] = p['prize_name'] p_dict[u"lottery_time"] = bdd_util.get_date_str(p['created_at']) p_dict[u"receive_status"] = u'已领取' if p['status'] else u'未领取' p_dict[u"actions"] = u'' if p['status'] else u'领取' actual.append((p_dict)) print("actual_data: {}".format(actual)) expected = [] if context.table: for row in context.table: cur_p = row.as_dict() if cur_p[u'lottery_time']: cur_p[u'lottery_time'] = bdd_util.get_date_str( cur_p[u'lottery_time']) expected.append(cur_p) else: expected = json.loads(context.text) print("expected: {}".format(expected)) bdd_util.assert_list(expected, actual)
def step_impl(context, user): start_date = bdd_util.get_date_str(context.date_dict['start_date']) end_date = bdd_util.get_date_str(context.date_dict['end_date']) url = '/stats/api/member_detail_data/?start_date=%s&end_date=%s' % (start_date, end_date) response = context.client.get(url) bdd_util.assert_api_call_success(response) results = json.loads(response.content) print("results: {}".format(results)) actual = results['data']['items'] expected = [] for row in context.table: expected_dict = {} expected_dict['date'] = bdd_util.get_date_str(row['date']) expected_dict['new_member_count'] = row['new_member'] expected_dict['binding_phone_member_count'] = row['mobile_phone_member'] expected_dict['share_url_member_count'] = row['launch_share_link_member'] expected_dict['member_from_share_url_count'] = row['share_link_new_member'] expected_dict['ori_qrcode_member_count'] = row['launch_spreading_code_member'] expected_dict['member_from_qrcode_count'] = row['spreading_code_new_member'] expected_dict['bought_member_count'] = row['order_member'] expected.append(expected_dict) bdd_util.assert_list(expected, actual)
def __date2time(date_str): """ 字符串 今天/明天…… 转化为字符串 "%Y-%m-%d %H:%M" """ cr_date = date_str p_date = bdd_util.get_date_str(cr_date) p_time = "{} 00:00".format(bdd_util.get_date_str(cr_date)) return p_time
def step_impl(context, user): #更改所有参与者的最后一次签到时间 if context.need_change_date: __change_all_member_last_sign_time(context) context.need_change_date = False design_mode = 0 count_per_page = 10 version = 1 page = 1 enable_paginate = 1 participant_name = u'' #分页情况,更新分页参数 if hasattr(context, "paging"): paging_dic = context.paging count_per_page = paging_dic['count_per_page'] page = paging_dic['page_num'] if hasattr(context, "filter"): participant_name = context.filter["name"] url = '/apps/exsign/api/exsign_participances/?design_mode=%s&version=%s&count_per_page=%s&page=%s&enable_paginate=%s&_method=get&id=%s&participant_name=%s' % ( design_mode, version, count_per_page, page, enable_paginate, context.exsign_id, participant_name) url = bdd_util.nginx(url) response = context.client.get(url) context.participances = json.loads(response.content) participances = context.participances['data']['items'] actual = [] for p in participances: p_dict = OrderedDict() p_dict[u"name"] = p['participant_name'] p_dict[u"last_sign"] = bdd_util.get_date_str(p['latest_date_f']) p_dict[u"total_sign"] = p['total_count'] p_dict[u"continuous_sign"] = p['serial_count'] p_dict[u"integral"] = p['total_integral'] p_dict[u"coupon_num"] = p['coupon_count'] actual.append((p_dict)) print("actual_data: {}".format(actual)) expected = [] if context.table: for row in context.table: cur_p = row.as_dict() if cur_p[u'last_sign']: cur_p[u'last_sign'] = bdd_util.get_date_str( cur_p[u'last_sign']) expected.append(cur_p) else: expected = json.loads(context.text) print("expected: {}".format(expected)) bdd_util.assert_list(expected, actual)
def step_impl(context, user, red_envelope_rule_name): id = __get_red_envelope_rule_id(red_envelope_rule_name) params = { 'id': id } response = context.client.get('/apps/red_envelope/api/red_envelope_participances/?_method=get', params) participances = json.loads(response.content)['data']['items'] actual = [] for p in participances: p_dict = OrderedDict() p_dict[u"下单会员"] = p['username_truncated'] p_dict[u"会员状态"] = p['grade'] p_dict[u"引入领取人数"] = p['introduce_received_number_count'] p_dict[u"引入使用人数"] = p['introduce_used_number_count'] p_dict[u"引入新关注"] = p['introduce_new_member_count'] p_dict[u"引入消费额"] = p['introduce_sales_number'] p_dict[u"领取时间"] = p['created_at'] p_dict[u"使用状态"] = p['coupon_status_name'] p_dict[u"操作"] = [u'查看引入详情',u'查看使用订单'] if p['coupon_status'] ==1 else u'查看引入详情' actual.append((p_dict)) print("actual_data: {}".format(actual)) expected = [] if context.table: for row in context.table: cur_p = row.as_dict() if u'领取时间' in cur_p: cur_p[u'领取时间'] = bdd_util.get_date_str(cur_p[u'领取时间']) expected.append(cur_p) else: expected = json.loads(context.text) print("expected: {}".format(expected)) bdd_util.assert_list(expected, actual)
def step_impl(context, user): start_date = bdd_util.get_date_str(context.date_dict['start_date']) end_date = bdd_util.get_date_str(context.date_dict['end_date']) url = '/stats/api/member_summary/?start_date=%s&end_date=%s' % (start_date, end_date) response = context.client.get(url) bdd_util.assert_api_call_success(response) results = json.loads(response.content) print("results: {}".format(results)) actual = results['data']['items'] expected_dict = {} for row in context.table: expected_dict[row['item']] = row['quantity'] expected = convert_readable_dict(expected_dict) bdd_util.assert_dict(expected, actual)
def step_impl(context, user): start_date = bdd_util.get_date_str(context.date_dict['start_date']) end_date = bdd_util.get_date_str(context.date_dict['end_date']) url = '/stats/api/member_qrcode_rank/?start_date=%s&end_date=%s' % (start_date, end_date) response = context.client.get(url) results = json.loads(response.content) actual_list = results['data']['items'] actual = {} for item in actual_list: actual[item['username']] = item['followers'] expected = {} for row in context.table: expected[row['username']] = int(row['followers']) bdd_util.assert_dict(expected, actual)
def step_impl(context, user): start_date = bdd_util.get_date_str(context.date_dict['start_date']) end_date = bdd_util.get_date_str(context.date_dict['end_date']) url = '/stats/api/product_summary/?start_date=%s&end_date=%s' % (start_date, end_date) response = context.client.get(url) results = json.loads(response.content) actual = results['data']['item'] expected_dict = {} for row in context.table: expected_dict[row['item']] = int(row['quantity']) expected = {} expected['buyer_count'] = expected_dict[u'购买总人数'] expected['order_count'] = expected_dict[u'下单单量'] expected['deal_product_count'] = expected_dict[u'总成交件数'] bdd_util.assert_dict(expected, actual)
def step_impl(context, user, member_name, sign_name): design_mode = 0 count_per_page = 15 version = 1 page = 1 enable_paginate = 1 belong_to = exSign.objects.get(name=sign_name).id member_id = member_models.Member.objects.get( username_hexstr=byte_to_hex(member_name)).id params = { "member_id": member_id, "belong_to": belong_to, "count_per_page": 15, "page": 1 } response = context.client.get( '/apps/exsign/api/exsign_participance_details/?_method=put', params) participance_detatils = json.loads(response.content)['data']['items'] actual = [] for detail in participance_detatils: p_dict = OrderedDict() p_dict[u"sign_time"] = bdd_util.get_date_str(detail['created_at_f']) p_dict[u"get_reward"] = detail['prize'].replace('<br/>', '') p_dict[u"sign_state"] = detail['status'] actual.append((p_dict)) print("actual_data: {}".format(actual)) expected = [] if context.table: for row in context.table: cur_p = row.as_dict() if cur_p[u'sign_time']: cur_p[u'sign_time'] = bdd_util.get_date_str( cur_p[u'sign_time']) expected.append(cur_p) else: for p in json.loads(context.text): if p[u'sign_time']: p[u'sign_time'] = bdd_util.get_date_str(p[u'sign_time']) expected.append(p) print("expected: {}".format(expected)) bdd_util.assert_list(expected, actual)
def step_impl(context, user, exlottery_name): design_mode = 0 count_per_page = 10 version = 1 page = 1 enable_paginate = 1 expected = json.loads(context.text) actual = [] for code in expected: use_date = code.get('use_date', '') if use_date: start_date = bdd_util.get_date_str(use_date) code['use_date'] = start_date #搜索查看结果 if hasattr(context, "search_exlottery_code"): search_code_result = context.search_exlottery_code for code in search_code_result: actual.append({ 'lottery_code': code['code'], 'user': code['member'], 'use_date': code['time'][:10] if code['time'] else '', 'prize_grade': code['grade'], 'prize_name': code['name'] }) bdd_util.assert_list(expected, actual) # 其他查看结果 else: # 分页情况,更新分页参数 if hasattr(context, "paging"): paging_dic = context.paging count_per_page = paging_dic['count_per_page'] page = paging_dic['page_num'] exlottery = __get_exlottery_by_exlottery_name(exlottery_name) url = "/apps/exlottery/api/exlottery_code_store/?design_mode={}&version={}&count_per_page={}&page={}&enable_paginate={}&id={}".format( design_mode, version, count_per_page, page, enable_paginate, exlottery.id) response = context.client.get(url) codes = json.loads(response.content)['data']['items'] for code in codes: actual.append({ 'lottery_code': code['code'], 'user': code['member'], 'use_date': code['time'][:10] if code['time'] else '', 'prize_grade': code['grade'], 'prize_name': code['name'] }) bdd_util.assert_list(expected, actual)
def step_impl(context, user): start_date = bdd_util.get_date_str(context.date_dict['start_date']) end_date = bdd_util.get_date_str(context.date_dict['end_date']) url = '/stats/api/member_increasement/?start_date=%s&end_date=%s' % (start_date, end_date) response = context.client.get(url) bdd_util.assert_api_call_success(response) results = json.loads(response.content) actual_new_member_list = results['data']['series'][0]['data'] actual_bought_member_list = results['data']['series'][1]['data'] actual = [actual_new_member_list, actual_bought_member_list] expected = [] expected_new_member_list = [] expected_bought_member_list = [] for row in context.table: expected_new_member_list.append(int(row['new_member_count'])) expected_bought_member_list.append(int(row['bought_member_count'])) expected = [expected_new_member_list, expected_bought_member_list] bdd_util.assert_list(expected, actual)
def step_impl(context, user, webapp_user): actual_data = context.focus_data['items'] for data in actual_data: data['pay_money'] = float(data['pay_money']) expected_data = [] for row in context.table: adict = {} adict['username'] = row['member'] adict['pay_money'] = float(row['pay_money']) adict['integral'] = row['integral'] adict['source'] = sources_dict[row['Source']] adict['created_at'] = bdd_util.get_date_str(row['attention_time']) expected_data.append(adict) bdd_util.assert_list(expected_data, actual_data)
def step_impl(context, webapp_user_name, date_str): today = datetime.now() date = "%s %s" % (bdd_util.get_date_str(date_str),today.strftime("%H:%M:%S")) if not hasattr(context,"latest_date"): context.latest_date = { webapp_user_name : bdd_util.get_date(date) } params = { 'webapp_owner_id': context.webapp_owner_id, 'id': context.exsign_id } signParticipance = exSignParticipance.objects(member_id=context.member.id) if signParticipance: timedelta = (bdd_util.get_date(date) - context.latest_date[webapp_user_name]).days __change_sign_date(context.member.id,timedelta)#将上一次签到时间向前调整 response = context.client.post('/m/apps/exsign/api/exsign_participance/?_method=put', params) else: response = context.client.post('/m/apps/exsign/api/exsign_participance/?_method=put', params) #首次签到的话,将首次签到时间置为设定的时间 signParticipance.update(set__created_at = bdd_util.get_date(date)) #如果是另一个用户签到了,创建新的最近一次签到时间到dict里 if webapp_user_name not in context.latest_date: context.latest_date[webapp_user_name] = bdd_util.get_date(date) #对比时间,记录最后一次签到时间 if context.latest_date[webapp_user_name] < bdd_util.get_date(date): context.latest_date[webapp_user_name] = bdd_util.get_date(date) item = exSignDetails.objects.filter(belong_to=context.exsign_id, member_id=context.member.id).order_by('-id').first() item.update(created_at = bdd_util.get_date(date)) # 下面的step会将签到详情领取时间改成step接受的时间. sign_details_index = exSignDetails.objects.count() - 1 last_sign = exSignDetails.objects.all()[sign_details_index] # 得到最后一个签到信息 if last_sign.prize["coupon"]: # 如果最后一个签到信息中提示获得了优惠券.修改日期为当前时间 import time time.sleep(1) from apps.customerized_apps.mysql_models import ConsumeCouponLog coupon_log_index = ConsumeCouponLog.objects.count() - 1 last_coupon = ConsumeCouponLog.objects.all()[coupon_log_index] coupon = Coupon.objects.filter(id=last_coupon.coupon_id) coupon.update(provided_time=date) # 修改日期为当前时间 context.need_change_date = True
def step_impl(context, user): start_date = None end_date = None if context.date_dict: start_date = context.date_dict['start_date'] end_date = context.date_dict['end_date'] start_date = bdd_util.get_date_str(start_date) end_date = bdd_util.get_date_str(end_date) else: today = dateutil.get_today() start_date = dateutil.get_previous_date(today, 6) end_date = today start_time = start_date + ' 00:00:00' end_time = end_date + ' 23:59:59' url = '/stats/api/order_summary/?start_time=%s&end_time=%s' % (start_time, end_time) response = context.client.get(url) bdd_util.assert_api_call_success(response) result = json.loads(response.content) context.stats_data = result['data']
def step_impl(context, user, member): member_id = bdd_util.get_member_by_username(member, context.webapp_id).id url = '/member/api/member_browse_record/?id=' + str(member_id) response = context.client.get(bdd_util.nginx(url)) items = json.loads(response.content)['data']['items'] expected = json.loads(context.text) actual = [] for record in items: actual.append( dict(date_time=record['create_at'].split()[0], link=record['tittle'])) for item in expected: item['date_time'] = "{}".format( bdd_util.get_date_str(item['date_time'])) bdd_util.assert_list(actual, expected)
def step_webapp_owner_verified_review(context, webapp_owner): """ [{ "member": "tom", "status": "-1", -> ('-1', '已屏蔽'), ('0', '待审核'), ('1', '通过审核'), ('1', '取消置顶'), ('2', '通过并置顶') "product_name": "商品1", "order_no": "3" }, { "member": "bill", "status": "1", "product_name": "商品1", "order_no": "1" }] """ review_status = { u'屏蔽处理': -1, u'待审核': 0, u'通过审核': 1, u'取消置顶': 1, u'通过并置顶': 2, } url = '/apps/evaluate/api/evaluate_review/?design_mode=0&version=1' context_dict = json.loads(context.text) for i in context_dict: product_name = i.get('product_name') order_code = i.get('order_no') product_review = get_product_review(order_code, product_name) args = { "product_review_id": product_review.id, "status": str(review_status[i.get("status")]) } context.client.post(url, args) if 'time' in i and str(review_status[i.get("status")]) == "2": time = i['time'] top_time = "{} 00:00".format(bdd_util.get_date_str(time)) product_review.top_time = top_time product_review.save()
def step_impl(context, user, red_envelope_rule_name,share_member,order_no): id = __get_red_envelope_rule_id(red_envelope_rule_name) followed_member = Member.objects.get(username_hexstr=byte_to_hex(share_member)) order_id = Order.objects.get(order_id=order_no).id relation_id = RedEnvelopeToOrder.objects.get(red_envelope_rule_id=id,order_id=order_id).id params = { 'rule_id': id, 'introduced_by': followed_member.id, 'relation_id': relation_id } response = context.client.get('/apps/red_envelope/api/red_envelope_participances/?_method=get', params) participances = json.loads(response.content)['data']['items'] actual = [] for p in participances: p_dict = OrderedDict() p_dict[u"分享会员"] = p['username_truncated'] p_dict[u"会员状态"] = p['grade'] p_dict[u"引入领取人数"] = p['introduce_received_number_count'] p_dict[u"引入使用人数"] = p['introduce_used_number_count'] p_dict[u"引入新关注"] = p['introduce_new_member_count'] p_dict[u"引入消费额"] = p['introduce_sales_number'] p_dict[u"领取时间"] = p['created_at'] p_dict[u"使用状态"] = p['coupon_status_name'] p_dict[u"操作"] = u'查看使用订单' if p['coupon_status'] ==1 else "" actual.append((p_dict)) print("actual_data: {}".format(actual)) expected = [] if context.table: for row in context.table: cur_p = row.as_dict() if u'领取时间' in cur_p: cur_p[u'领取时间'] = bdd_util.get_date_str(cur_p[u'领取时间']) expected.append(cur_p) else: expected = json.loads(context.text) print("expected: {}".format(expected)) bdd_util.assert_list(expected, actual)
def step_impl(context, user): expected = [] for row in context.table: tmp_dict = {} tmp_dict['product_name'] = row['product_name'] tmp_dict['order_id'] = row['order_id'] tmp_dict['discount_amount'] = float(row['discount_amount']) tmp_dict['freight'] = float(row['freight']) tmp_dict['paid_amount'] = float(row['paid_amount']) tmp_dict['payment_method'] = row['payment_method'] tmp_dict['consumer'] = row['consumer'] tmp_dict['order_datetime'] = bdd_util.get_date_str( row['order_datetime']) tmp_dict['order_status'] = row['order_status'] expected.append(tmp_dict) items = context.stats_data['items'] actual = [] for item in items: tmp_dict = {} products = item['products'] product_names = '' for product in products: product_names += product['name'] + ',' tmp_dict['product_name'] = product_names.rstrip(',') tmp_dict['order_id'] = item['order_id'] tmp_dict['discount_amount'] = float(item['save_money']) tmp_dict['freight'] = float(item['postage']) tmp_dict['paid_amount'] = float(item['pay_money']) tmp_dict['payment_method'] = item['pay_interface_type'] tmp_dict['consumer'] = item['buyer_name'] created_at = item['created_at'].split(' ')[0].replace('/', '-') tmp_dict['order_datetime'] = created_at tmp_dict['order_status'] = item['order_status'] actual.append(tmp_dict) bdd_util.assert_list(expected, actual)
def step_impl(context, webapp_user_name): result_data = context.record_info expected_data = json.loads(context.text) expected_data['end_date'] = bdd_util.get_date_str(expected_data['end_date']) actual_data = { "total_participanted_count": 0, "total_voted_count": 0, "total_visits": 0, "end_date": "" } for k, v in result_data.items(): if k == "total_parted": actual_data["total_participanted_count"] = v if k == "total_counts": actual_data["total_voted_count"] = v if k == "total_visits": actual_data["total_visits"] = v if k == "end_date": actual_data["end_date"] = v bdd_util.assert_dict(expected_data,actual_data)
def step_impl(context, user, scratch_name): expect = json.loads(context.text)[0] title = expect.get("name", "") cr_start_date = expect.get('start_date', u'今天') start_date = bdd_util.get_date_str(cr_start_date) start_time = "{} 00:00".format(bdd_util.get_date_str(cr_start_date)) cr_end_date = expect.get('end_date', u'1天后') end_date = bdd_util.get_date_str(cr_end_date) end_time = "{} 00:00".format(bdd_util.get_date_str(cr_end_date)) valid_time = "%s~%s" % (start_time, end_time) desc = expect.get('desc', '') #描述 reduce_integral = expect.get('reduce_integral', 0) #消耗积分 send_integral = expect.get('send_integral', 0) #参与送积分 send_integral_rules = expect.get('send_integral_rules', "") #送积分规则 scratch_limit = __name2limit(expect.get('lottery_limit', u'一人一次')) #抽奖限制 win_rate = expect.get('win_rate', '0%').split('%')[0] #中奖率 is_repeat_win = __name2Bool(expect.get('is_repeat_win', "true")) #重复中奖 expect_prize_settings_list = expect.get('prize_settings', []) page_prize_settings, scratch_prize_settings = __prize_settings_process( expect_prize_settings_list) obj = scratch_models.Scratch.objects.get(name=scratch_name) #纯数字 lottory_record = ScratchRecord.objects.filter(belong_to=str(obj.id)) related_page_id = obj.related_page_id pagestore = pagestore_manager.get_pagestore('mongo') page = pagestore.get_page(related_page_id, 1) page_component = page['component']['components'][0]['components'] prize_dic = {} for record in lottory_record: if not prize_dic.has_key(record.prize_title): prize_dic[record.prize_title] = 1 else: prize_dic[record.prize_title] += 1 expect_scratch_dic = { "name": title, "start_time": start_time, "end_time": end_time, "expend": reduce_integral, #消耗积分 "delivery": send_integral, #参与送积分 "delivery_setting": __delivery2Bool(send_integral_rules), #送积分规则 "limitation": scratch_limit, #抽奖限制 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize_settings": page_prize_settings, } actual_prize_list = [] for comp in page_component: actual_prize_dic = {} actual_prize_dic['title'] = comp['model']['title'] actual_prize_dic['prize_count'] = comp['model']['prize_count'] actual_prize_dic['leftCount'] = ( comp['model']['prize_count'] - prize_dic.get(comp['model']['title'], 0) ) if expect_prize_settings_list[page_component.index(comp)].has_key( 'rest') else "" actual_prize_dic['prize'] = { "type": comp['model']['prize']['type'], "data": comp['model']['prize']['data'] } actual_prize_list.append(actual_prize_dic) actual_scratch_dic = { "name": obj.name, "start_time": __datetime2str(obj.start_time), "end_time": __datetime2str(obj.end_time), "expend": obj.expend, #消耗积分 "delivery": obj.delivery, #参与送积分 "delivery_setting": obj.delivery_setting, #送积分规则 "limitation": obj.limitation, #抽奖限制 "chance": obj.chance, #中奖率 "allow_repeat": obj.allow_repeat, #重复中奖 "prize_settings": actual_prize_list, } bdd_util.assert_dict(expect_scratch_dic, actual_scratch_dic)
def step_impl(context, user, powerme_name): expect = json.loads(context.text)[0] title = expect.get("name", "") cr_start_date = expect.get('start_date', u'今天') start_date = bdd_util.get_date_str(cr_start_date) start_time = "{} 00:00".format(bdd_util.get_date_str(cr_start_date)) cr_end_date = expect.get('end_date', u'1天后') end_date = bdd_util.get_date_str(cr_end_date) end_time = "{} 00:00".format(bdd_util.get_date_str(cr_end_date)) # valid_time = "%s~%s"%(start_time,end_time) timing_status = expect.get("is_show_countdown", "") # timing_value_day = __date_delta(start_date,end_date) description = expect.get("desc", "") reply_content = expect.get("reply") material_image = expect.get("share_pic", "") background_image = expect.get("background_pic", "") qrcode_name = expect.get("qr_code", "") if qrcode_name: qrcode = __get_qrcode(context, qrcode_name) else: qrcode = "" color = expect.get("background_color", "冬日暖阳") rules = expect.get("rules", "") obj = powerme_models.PowerMe.objects.get(name=powerme_name) #纯数字 related_page_id = obj.related_page_id pagestore = pagestore_manager.get_pagestore('mongo') page = pagestore.get_page(related_page_id, 1) page_component = page['component']['components'][0]['model'] fe_powerme_dic = { "name": title, "start_time": start_time, "end_time": end_time, "is_show_countdown": timing_status, "desc": description, "reply": reply_content, "qr_code": qrcode, "share_pic": material_image, "background_pic": background_image, "background_color": color, "rules": rules } db_powerme_dic = { "name": obj.name, "start_time": __datetime2str(obj.start_time), "end_time": __datetime2str(obj.end_time), "is_show_countdown": page_component['timing']['timing']['select'], "desc": page_component['description'], "reply": obj.reply_content, "qr_code": obj.qrcode, "share_pic": page_component['material_image'], "background_pic": page_component['background_image'], "background_color": __color2name(page_component['color']), "rules": page_component['rules'], } bdd_util.assert_dict(db_powerme_dic, fe_powerme_dic)
def __Update_PowerMe(context, text, page_id, powerme_id): """ 模拟用户登录页面 编辑微助力项目 写入mongo表: 1.powerme_powerme表 2.page表 """ design_mode = 0 version = 1 project_id = "new_app:powerme:" + page_id title = text.get("name", "") cr_start_date = text.get('start_date', u'今天') start_date = bdd_util.get_date_str(cr_start_date) start_time = "{} 00:00".format(bdd_util.get_date_str(cr_start_date)) cr_end_date = text.get('end_date', u'1天后') end_date = bdd_util.get_date_str(cr_end_date) end_time = "{} 00:00".format(bdd_util.get_date_str(cr_end_date)) valid_time = "%s~%s" % (start_time, end_time) timing_status = text.get("is_show_countdown", "") timing_value_day = __date_delta(start_date, end_date) description = text.get("desc", "") reply_content = text.get("reply") material_image = text.get("share_pic", "") background_image = text.get("background_pic", "") qrcode_name = text.get("qr_code", "") if qrcode_name: qrcode = __get_qrcode(context, qrcode_name) else: qrcode = "" zhcolor = text.get("background_color", "冬日暖阳") color = __name2color(zhcolor) rules = text.get("rules", "") page_args = { "title": title, "start_time": start_time, "end_time": end_time, "valid_time": valid_time, "timing_status": timing_status, "timing_value_day": timing_value_day, "description": description, "reply_content": reply_content, "qrcode": qrcode, "material_image": material_image, "background_image": background_image, "color": color, "rules": rules } page_json = __get_powermePageJson(page_args) update_page_args = { "field": "page_content", "id": project_id, "page_id": "1", "page_json": page_json } update_powerme_args = { "name": title, "start_time": start_time, "end_time": end_time, "timing": timing_status, "reply_content": reply_content, "material_image": material_image, "qrcode": json.dumps(qrcode), "id": powerme_id #updated的差别 } #page 更新Page update_page_url = "/termite2/api/project/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) update_page_response = context.client.post(update_page_url, update_page_args) #step4:更新Powerme update_powerme_url = "/apps/powerme/api/powerme/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) update_powerme_response = context.client.post(update_powerme_url, update_powerme_args)
def __Create_PowerMe(context, text, user): """ 模拟用户登录页面 创建微助力项目 写入mongo表: 1.powerme_powerme表 2.page表 """ design_mode = 0 version = 1 text = text title = text.get("name", "") cr_start_date = text.get('start_date', u'今天') start_date = bdd_util.get_date_str(cr_start_date) start_time = "{} 00:00".format(bdd_util.get_date_str(cr_start_date)) cr_end_date = text.get('end_date', u'1天后') end_date = bdd_util.get_date_str(cr_end_date) end_time = "{} 00:00".format(bdd_util.get_date_str(cr_end_date)) valid_time = "%s~%s" % (start_time, end_time) timing_status = text.get("is_show_countdown", "") timing_value_day = __date_delta(start_date, end_date) description = text.get("desc", "") reply_content = text.get("reply") material_image = text.get("share_pic", "") background_image = text.get("background_pic", "") qrcode_name = text.get("qr_code", "") if qrcode_name: qrcode_id = ChannelQrcodeSettings.objects.get( owner_id=context.webapp_owner_id, name=qrcode_name).id qrcode_i_url = '/new_weixin/qrcode/?setting_id=%s' % str(qrcode_id) qrcode_response = context.client.get(qrcode_i_url) qrcode_info = qrcode_response.context['qrcode'] qrcode_ticket_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={}".format( qrcode_info.ticket) qrcode = {"ticket": qrcode_ticket_url, "name": qrcode_info.name} else: qrcode = {"ticket": "", "name": ""} zhcolor = text.get("background_color", "冬日暖阳") color = __name2color(zhcolor) rules = text.get("rules", "") page_args = { "title": title, "start_time": start_time, "end_time": end_time, "valid_time": valid_time, "timing_status": timing_status, "timing_value_day": timing_value_day, "description": description, "reply_content": reply_content, "qrcode": qrcode, "material_image": material_image, "background_image": background_image, "color": color, "rules": rules } #step1:登录页面,获得分配的project_id get_pw_response = context.client.get("/apps/powerme/powerme/") pw_args_response = get_pw_response.context project_id = pw_args_response['project_id'] #(str){new_app:powerme:0} #step2: 编辑页面获得右边的page_json dynamic_url = "/apps/api/dynamic_pages/get/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) dynamic_response = context.client.get(dynamic_url) dynamic_data = dynamic_response.context #resp.context=> data ; resp.content => Http Text #step3:发送Page page_json = __get_powermePageJson(page_args) termite_post_args = { "field": "page_content", "id": project_id, "page_id": "1", "page_json": page_json } termite_url = "/termite2/api/project/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) post_termite_response = context.client.post(termite_url, termite_post_args) related_page_id = json.loads(post_termite_response.content).get( "data", {})['project_id'] #step4:发送powerme_args post_powerme_args = { "name": title, "start_time": start_time, "end_time": end_time, "timing": timing_status, "reply_content": reply_content, "material_image": material_image, "qrcode": json.dumps(qrcode), "related_page_id": related_page_id } powerme_url = "/apps/powerme/api/powerme/?design_mode={}&project_id={}&version={}&_method=put".format( design_mode, project_id, version) post_powerme_response = context.client.post(powerme_url, post_powerme_args)
def __Create_scratch(context, text, user): """ 模拟用户登录页面 创建刮刮卡项目 写入mongo表: 1.scratch_scratch表 2.page表 """ design_mode = 0 version = 1 text = text title = text.get("name", "") cr_start_date = text.get('start_date', u'今天') start_date = bdd_util.get_date_str(cr_start_date) start_time = "{} 00:00".format(bdd_util.get_date_str(cr_start_date)) cr_end_date = text.get('end_date', u'1天后') end_date = bdd_util.get_date_str(cr_end_date) end_time = "{} 00:00".format(bdd_util.get_date_str(cr_end_date)) valid_time = "%s~%s" % (start_time, end_time) desc = text.get('desc', '') #描述 reduce_integral = text.get('reduce_integral', 0) #消耗积分 send_integral = text.get('send_integral', 0) #参与送积分 send_integral_rules = text.get('send_integral_rules', "") #送积分规则 scratch_limit = __name2limit(text.get('lottery_limit', u'一人一次')) #抽奖限制 win_rate = text.get('win_rate', '0%').split('%')[0] #中奖率 is_repeat_win = __name2Bool(text.get('is_repeat_win', "true")) #重复中奖 lottory_color = text.get('lottory_color', '') lottory_pic = text.get('lottory_pic', '') expect_prize_settings_list = text.get('prize_settings', []) page_prize_settings, scratch_prize_settings = __prize_settings_process( expect_prize_settings_list) page_args = { "title": title, "start_time": start_time, "end_time": end_time, "valid_time": valid_time, "description": desc, #描述 "expend": reduce_integral, #消耗积分 "delivery": send_integral, #参与送积分 "delivery_setting": __delivery2Bool(send_integral_rules), #送积分规则 "limitation": scratch_limit, #抽奖限制 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize_settings": page_prize_settings, "background_color": lottory_color, "scratch_bg_image": lottory_pic } #step1:登录页面,获得分配的project_id get_scratch_response = context.client.get("/apps/scratch/scratch/") scratch_args_response = get_scratch_response.context project_id = scratch_args_response['project_id'] #(str){new_app:scratch:0} #step2: 编辑页面获得右边的page_json dynamic_url = "/apps/api/dynamic_pages/get/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) dynamic_response = context.client.get(dynamic_url) dynamic_data = dynamic_response.context #resp.context=> data ; resp.content => Http Text #step3:发送Page page_json = __get_scratchPageJson(page_args) termite_post_args = { "field": "page_content", "id": project_id, "page_id": "1", "page_json": page_json } termite_url = "/termite2/api/project/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) post_termite_response = context.client.post(termite_url, termite_post_args) related_page_id = json.loads(post_termite_response.content).get( "data", {})['project_id'] #step4:发送scratch_args post_scratch_args = { "name": title, "start_time": start_time, "end_time": end_time, "expend": reduce_integral, #消耗积分 "delivery": send_integral, #参与送积分 "delivery_setting": __delivery2Bool(send_integral_rules), #送积分规则 "limitation": scratch_limit, #抽奖限制 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize": json.dumps(scratch_prize_settings), "related_page_id": related_page_id } scratch_url = "/apps/scratch/api/scratch/?design_mode={}&project_id={}&version={}&_method=put".format( design_mode, project_id, version) post_scratch_response = context.client.post(scratch_url, post_scratch_args) #跳转,更新状态位 design_mode = 0 count_per_page = 1000 version = 1 page = 1 enable_paginate = 1 rec_scratch_url = "/apps/scratch/api/lotteries/?design_mode={}&version={}&count_per_page={}&page={}&enable_paginate={}".format( design_mode, version, count_per_page, page, enable_paginate) rec_scratch_response = context.client.get(rec_scratch_url)
def __Update_Scratch(context, text, page_id, scratch_id): """ 模拟用户登录页面 编辑抽奖项目 写入mongo表: 1.scratch_scratch表 2.page表 """ design_mode = 0 version = 1 project_id = "new_app:scratch:" + page_id title = text.get("name", "") cr_start_date = text.get('start_date', u'今天') start_date = bdd_util.get_date_str(cr_start_date) start_time = "{} 00:00".format(bdd_util.get_date_str(cr_start_date)) cr_end_date = text.get('end_date', u'1天后') end_date = bdd_util.get_date_str(cr_end_date) end_time = "{} 00:00".format(bdd_util.get_date_str(cr_end_date)) valid_time = "%s~%s" % (start_time, end_time) desc = text.get('desc', '') #描述 reduce_integral = text.get('reduce_integral', 0) #消耗积分 send_integral = text.get('send_integral', 0) #参与送积分 send_integral_rules = text.get('send_integral_rules', "") #送积分规则 scratch_limit = __name2limit(text.get('lottery_limit', u'一人一次')) #抽奖限制 win_rate = text.get('win_rate', '0%').split('%')[0] #中奖率 is_repeat_win = __name2Bool(text.get('is_repeat_win', "true")) #重复中奖 lottory_color = text.get('lottory_color', '') lottory_pic = text.get('lottory_pic', '') expect_prize_settings_list = text.get('prize_settings', []) page_prize_settings, scratch_prize_settings = __prize_settings_process( expect_prize_settings_list) page_args = { "title": title, "start_time": start_time, "end_time": end_time, "valid_time": valid_time, "description": desc, #描述 "expend": reduce_integral, #消耗积分 "delivery": send_integral, #参与送积分 "delivery_setting": __delivery2Bool(send_integral_rules), #送积分规则 "limitation": scratch_limit, #抽奖限制 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize_settings": page_prize_settings, "scratch_bg_image": lottory_pic, "background_color": lottory_color } page_json = __get_scratchPageJson(page_args) update_page_args = { "field": "page_content", "id": project_id, "page_id": "1", "page_json": page_json } update_scratch_args = { "name": title, "start_time": start_time, "end_time": end_time, "expend": reduce_integral, #消耗积分 "delivery": send_integral, #参与送积分 "delivery_setting": __delivery2Bool(send_integral_rules), #送积分规则 "limitation": scratch_limit, #抽奖限制 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize": json.dumps(scratch_prize_settings), "id": scratch_id #updated的差别 } #page 更新Page update_page_url = "/termite2/api/project/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) update_page_response = context.client.post(update_page_url, update_page_args) #step4:更新scratch update_scratch_url = "/apps/scratch/api/scratch/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) update_scratch_response = context.client.post(update_scratch_url, update_scratch_args) #跳转,更新状态位 design_mode = 0 count_per_page = 1000 version = 1 page = 1 enable_paginate = 1 rec_scratch_url = "/apps/scratch/api/scratches/?design_mode={}&version={}&count_per_page={}&page={}&enable_paginate={}".format( design_mode, version, count_per_page, page, enable_paginate) rec_scratch_response = context.client.get(rec_scratch_url)
def __Update_Exlottery(context, text, page_id, lottery_id): """ 模拟用户登录页面 编辑抽奖项目 写入mongo表: 1.lottery_lottery表 2.page表 """ design_mode = 0 version = 1 project_id = "new_app:lottery:" + page_id title = text.get("name", "") cr_start_date = text.get('start_date', u'今天') start_date = bdd_util.get_date_str(cr_start_date) start_time = "{} 00:00".format(bdd_util.get_date_str(cr_start_date)) cr_end_date = text.get('end_date', u'1天后') end_date = bdd_util.get_date_str(cr_end_date) end_time = "{} 00:00".format(bdd_util.get_date_str(cr_end_date)) valid_time = "%s~%s" % (start_time, end_time) desc = text.get('desc', '') #活动规则 share_intro = text.get('share_intro', '') #分享时的描述 # reduce_integral = text.get('reduce_integral',0)#消耗积分 # send_integral = text.get('send_integral',0)#参与送积分 reply = text.get('reply', "") #送积分规则 reply_link = text.get('link_reply', "") lottery_code_count = text.get('lottory_code_num', u'0') #抽奖码个数 home_page_pic = text.get('home_page_pic', '') lottory_pic = text.get('lottory_pic', '') lottory_color = text.get('lottory_color', '') win_rate = text.get('win_rate', '0%').split('%')[0] #中奖率 is_repeat_win = __name2Bool(text.get('is_repeat_win', "true")) #重复中奖 expect_prize_settings_list = text.get('prize_settings', []) page_prize_settings, exlottery_prize_settings = __prize_settings_process( expect_prize_settings_list) page_args = { "title": title, "start_time": start_time, "end_time": end_time, "valid_time": valid_time, "description": desc, #描述 "share_description": share_intro, #分享简介 # "expend":reduce_integral,#消耗积分 # "delivery":send_integral,#参与送积分 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize_settings": page_prize_settings, "lottery_code_count": lottery_code_count, "homepage_image": home_page_pic, "exlottery_bg_image": lottory_pic, "background_color": lottory_color } page_json = __get_exlotteryPageJson(page_args) update_page_args = { "field": "page_content", "id": project_id, "page_id": "1", "page_json": page_json } update_exlottery_args = { "name": title, "share_description": share_intro, # 分享简介 "start_time": start_time, "end_time": end_time, "homepage_image": home_page_pic, # "expend":reduce_integral,#消耗积分 # "delivery":send_integral,#参与送积分 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize": json.dumps(exlottery_prize_settings), "id": lottery_id, #updated的差别 "lottery_code_count": lottery_code_count, } #page 更新Page update_page_url = "/termite2/api/project/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) context.client.post(update_page_url, update_page_args) #step4:更新lottery update_exlottery_url = "/apps/exlottery/api/exlottery/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) context.client.post(update_exlottery_url, update_exlottery_args) #跳转,更新状态位 design_mode = 0 count_per_page = 1000 version = 1 page = 1 enable_paginate = 1 rec_exlottery_url = "/apps/exlottery/api/exlotteries/?design_mode={}&version={}&count_per_page={}&page={}&enable_paginate={}".format( design_mode, version, count_per_page, page, enable_paginate) context.client.get(rec_exlottery_url)
def __Create_Exlottery(context, text, user): """ 模拟用户登录页面 创建专项抽奖项目 写入mongo表: 1.exlottery_exlottery表 2.page表 """ design_mode = 0 version = 1 text = text title = text.get("name", "") cr_start_date = text.get('start_date', u'今天') start_time = "{} 00:00".format(bdd_util.get_date_str(cr_start_date)) cr_end_date = text.get('end_date', u'1天后') end_time = "{} 00:00".format(bdd_util.get_date_str(cr_end_date)) valid_time = "%s~%s" % (start_time, end_time) desc = text.get('desc', '') #活动规则 share_intro = text.get('share_intro', '') #分享时的描述 # reduce_integral = text.get('reduce_integral',0)#消耗积分 # send_integral = text.get('send_integral',0)#参与送积分 win_rate = text.get('win_rate', '0%').split('%')[0] #中奖率 is_repeat_win = __name2Bool(text.get('is_repeat_win', "true")) #重复中奖 lottery_code_count = text.get('lottory_code_num', 0) home_page_pic = text.get('home_page_pic', '') lottory_pic = text.get('lottory_pic', '') lottory_color = text.get('lottory_color', '') expect_prize_settings_list = text.get('prize_settings', []) page_prize_settings, exlottery_prize_settings = __prize_settings_process( expect_prize_settings_list) page_args = { "title": title, "start_time": start_time, "end_time": end_time, "valid_time": valid_time, "description": desc, #描述 "share_description": share_intro, #分享简介 # "expend":reduce_integral,#消耗积分 # "delivery":send_integral,#参与送积分 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize_settings": page_prize_settings, "lottery_code_count": lottery_code_count, "homepage_image": home_page_pic, "exlottery_bg_image": lottory_pic, "background_color": lottory_color } #step1:登录页面,获得分配的project_id get_exlottery_response = context.client.get("/apps/exlottery/exlottery/") exlottery_args_response = get_exlottery_response.context project_id = exlottery_args_response[ 'project_id'] #(str){new_app:lottery:0} #step2: 编辑页面获得右边的page_json dynamic_url = "/apps/api/dynamic_pages/get/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) dynamic_response = context.client.get(dynamic_url) dynamic_data = dynamic_response.context #resp.context=> data ; resp.content => Http Text #step3:发送Page page_json = __get_exlotteryPageJson(page_args) termite_post_args = { "field": "page_content", "id": project_id, "page_id": "1", "page_json": page_json } termite_url = "/termite2/api/project/?design_mode={}&project_id={}&version={}".format( design_mode, project_id, version) post_termite_response = context.client.post(termite_url, termite_post_args) related_page_id = json.loads(post_termite_response.content).get( "data", {})['project_id'] #step4:发送lottery_args post_exlottery_args = { "name": title, "share_description": share_intro, #分享简介 "start_time": start_time, "end_time": end_time, "homepage_image": home_page_pic, # "expend":reduce_integral,#消耗积分 # "delivery":send_integral,#参与送积分 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize": json.dumps(exlottery_prize_settings), "related_page_id": related_page_id, "lottery_code_count": lottery_code_count, } exlottery_url = "/apps/exlottery/api/exlottery/?design_mode={}&project_id={}&version={}&_method=put".format( design_mode, project_id, version) post_exlottery_response = context.client.post(exlottery_url, post_exlottery_args) #跳转,更新状态位 design_mode = 0 count_per_page = 1000 version = 1 page = 1 enable_paginate = 1 rec_exlottery_url = "/apps/exlottery/api/exlotteries/?design_mode={}&version={}&count_per_page={}&page={}&enable_paginate={}".format( design_mode, version, count_per_page, page, enable_paginate) rec_exlottery_response = context.client.get(rec_exlottery_url)
def step_impl(context, user, lottery_name): expect = json.loads(context.text)[0] title = expect.get("name", "") cr_start_date = expect.get('start_date', u'今天') start_date = bdd_util.get_date_str(cr_start_date) start_time = "{} 00:00".format(bdd_util.get_date_str(cr_start_date)) cr_end_date = expect.get('end_date', u'1天后') end_date = bdd_util.get_date_str(cr_end_date) end_time = "{} 00:00".format(bdd_util.get_date_str(cr_end_date)) valid_time = "%s~%s" % (start_time, end_time) desc = expect.get('desc', '') #描述 # reduce_integral = expect.get('reduce_integral',0)#消耗积分 # send_integral = expect.get('send_integral',0)#参与送积分 lottery_code_count = expect.get('lottory_code_num', u'0') #抽奖码个数 win_rate = expect.get('win_rate', '0%').split('%')[0] #中奖率 is_repeat_win = __name2Bool(expect.get('is_repeat_win', "true")) #重复中奖 share_intro = expect.get('share_intro', '') #分享简介 home_page_pic = expect.get('home_page_pic', '') #首页背景图 expect_prize_settings_list = expect.get('prize_settings', []) page_prize_settings, exlottery_prize_settings = __prize_settings_process( expect_prize_settings_list) obj = exlottery_models.Exlottery.objects.get(name=lottery_name) #纯数字 lottory_record = exlottery_models.ExlottoryRecord.objects.filter( belong_to=str(obj.id)) related_page_id = obj.related_page_id pagestore = pagestore_manager.get_pagestore('mongo') page = pagestore.get_page(related_page_id, 1) page_component = page['component']['components'][0]['components'] prize_dic = {} for record in lottory_record: if not prize_dic.has_key(record.prize_title): prize_dic[record.prize_title] = 1 else: prize_dic[record.prize_title] += 1 expect_lottery_dic = { "name": title, "start_time": start_time, "end_time": end_time, # "expend":reduce_integral,#消耗积分 # "delivery":send_integral,#参与送积分 "chance": win_rate, #中奖率 "allow_repeat": is_repeat_win, #重复中奖 "prize_settings": page_prize_settings, "lottery_code_count": lottery_code_count, "share_intro": share_intro, "home_page_pic": home_page_pic } actual_prize_list = [] for comp in page_component: actual_prize_dic = {} actual_prize_dic['title'] = comp['model']['title'] actual_prize_dic['prize_count'] = comp['model']['prize_count'] actual_prize_dic['leftCount'] = ( comp['model']['prize_count'] - prize_dic.get(comp['model']['title'], 0) ) if expect_prize_settings_list[page_component.index(comp)].has_key( 'rest') else "" actual_prize_dic['image'] = comp['model']['image'] actual_prize_dic['prize'] = { "type": comp['model']['prize']['type'], "data": comp['model']['prize']['data'] } actual_prize_list.append(actual_prize_dic) actual_lottery_dic = { "name": obj.name, "start_time": __datetime2str(obj.start_time), "end_time": __datetime2str(obj.end_time), # "expend":obj.expend,#消耗积分 # "delivery":obj.delivery,#参与送积分 "chance": obj.chance, #中奖率 "allow_repeat": obj.allow_repeat, #重复中奖 "prize_settings": actual_prize_list, "lottery_code_count": obj.lottery_code_count, "share_intro": obj.share_description, "home_page_pic": obj.homepage_image } bdd_util.assert_dict(expect_lottery_dic, actual_lottery_dic)