Example #1
0
def step_impl(context, user):
	if hasattr(context, 'client') and (context.client.user.username != user):
		context.client.logout()

	data = json.loads(context.text)
	post_data = {}
	post_data['reward'] = 1
	if data['prize_type'] == u'无':
		post_data['prize_source|0'] = 0
		post_data['prize_type|0'] = 0
		post_data['detail'] = data['page_description']
	elif data['prize_type'] == u'积分':
		post_data['prize_source|0'] = data['integral']
		post_data['prize_type|0'] = 3
		post_data['detail'] = data['page_description']
	elif data['prize_type'] == u'优惠券':
		coupon_name = data['coupon']
		user_id = bdd_util.get_user_id_for(user)
		coupon_rule = CouponRule.objects.get(owner_id=user_id, name=coupon_name, is_active=True)
		post_data['prize_source|0'] = coupon_rule.id
		post_data['prize_type|0'] = 1
		post_data['detail'] = data['page_description']


	context.client = bdd_util.login(user)
	client = context.client

	url = '/member/api/member_qrcode/'
	

	response = client.post(url, post_data)
Example #2
0
def step_impl(context, user):
	if hasattr(context, 'client'):
		context.client.logout()
	context.client = bdd_util.login(user)
	client = context.client
	user = UserFactory(username=user)
	profile = UserProfile.objects.get(user_id=user.id)
	json_data = json.loads(context.text)

	integral_detail = {};
	integral = {}

	for key, value in  json_data[0].items():
		if key != 'member_integral_strategy_settings_detail':
			integral[key] = value

	if json_data[0].has_key('member_integral_strategy_settings_detail'):
		integral_detail = json_data[0]['member_integral_strategy_settings_detail'][0]

	if IntegralStrategySttings.objects.filter(webapp_id=profile.webapp_id).count() > 0:
		IntegralStrategySttings.objects.filter(webapp_id=profile.webapp_id).update(**integral)
	for key, value in integral_detail.items():
		if key == 'is_used':
			if value == u'否':
				integral_detail[key] = False
			else:
				integral_detail[key] = True
		else:
			integral_detail[key] = float(value[value.find('+')+1:value.find('*')])

	integral_detail['webapp_id'] = profile.webapp_id
	if IntegralStrategySttingsDetail.objects.filter(webapp_id=profile.webapp_id).count() > 0 and integral_detail:
		IntegralStrategySttingsDetail.objects.filter(webapp_id=profile.webapp_id).update(**integral_detail)
	elif integral_detail:
		pass
Example #3
0
def step_impl(context, user, weizoom_card_id):
    context.client = bdd_util.login(user)
    client = context.client
    card = WeizoomCard.objects.get(weizoom_card_id=weizoom_card_id)
    response = client.get(
        '/market_tools/weizoom_card/weizoom_card/%s/expense_record/' % card.id)
    card = response.context['card']
    expense_records = response.context['expense_records']

    expected_json = json.loads(context.text)
    status, _ = _get_status(expected_json['status'])
    actual_data = {
        "status": int(status),
        "price": float(expected_json['price'])
    }
    expected = {"status": int(card.status), "price": float(card.money)}
    # 是否需要验证日志
    if expected_json.get('log'):
        actual_data['log'] = expected_json.get('log')
        expected['log'] = _get_weizoom_card_log(expense_records)

    # print("*"*80, "能获取微众卡")
    # from pprint(import pprint)
    # pprint(expected)
    # pprint(actual_data)
    # print("*"*120)

    bdd_util.assert_dict(expected, actual_data)
Example #4
0
def step_impl(context, user, order_type):
    user_id = User.objects.get(username=user).id
    mall_type = UserProfile.objects.get(user_id=user_id).webapp_type
    if user != context.client.user.username:
        context.client.logout()
        context.client = bdd_util.login(user)

    if order_type == '退款中':
        url = '/mall2/api/order_list/?design_mode=0&version=1&belong=audit&orderSupplierType=undefined&order_status=6&count_per_page=9999'

    elif order_type == '退款成功':
        url = '/mall2/api/order_list/?design_mode=0&version=1&belong=audit&orderSupplierType=undefined&order_status=7&date_interval_type=1&count_per_page=9999'
    elif order_type == '全部':
        url = '/mall2/api/order_list/?design_mode=0&version=1&belong=audit&orderSupplierType=undefined&order_status=-1&date_interval_type=1&count_per_page=9999'

    query_params = dict()
    if hasattr(context, 'query_params'):
        query_params = context.query_params
        delattr(context, 'query_params')
    response = context.client.get(url, query_params)

    items = json.loads(response.content)['data']['items']

    actual_orders = __get_order_items_for_self_order(items)

    expected = json.loads(context.text)
    for order in expected:
        if 'actions' in order:
            order['actions'] = set(order['actions'])  # 暂时不验证顺序

    bdd_util.assert_list(expected, actual_orders)
Example #5
0
def step_impl(context, user, weizoom_card_rule_name):
    context.client = bdd_util.login(user)
    client = context.client
    rule = WeizoomCardRule.objects.filter(name=weizoom_card_rule_name)
    response = client.get(
        '/market_tools/weizoom_card/weizoom_card_rule_detail/?id=%s' % rule.id)
    weizoom_rule = response.context['weizoom_card_rule']
    actual_data = []
    data_weizoom_rule = {
        "name": weizoom_rule.name,
        "money": weizoom_rule.money,
        "Number": weizoom_rule.number,
        "Remarks": weizoom_rule.remark
    }
    #获取微众卡
    response = client.get(
        '/market_tools/weizoom_card/api/weizoom_cards/get/?weizoom_card_rule_id=%s'
        % rule.id)
    weizoom_cards = json.loads(response.data.items)
    data_cards = []
    for c in weizoom_cards:
        data_cards.append({
            'card_id': c['weizoom_card_id'],
            'password': c['password']
        })
    data_weizoom_rule['cards'] = data_cards

    expected = json.loads(context.text)
    logging.info(u"actual_data: {}".format(actual_data))
    bdd_util.assert_list(expected, actual_data)
Example #6
0
def step_impl(context, user):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)

    mall_models.UserProfile.objects.filter(
        user_id=context.webapp_owner_id).update(webapp_type=1)
Example #7
0
def step_impl(context, user):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)
    client = context.client

    response = client.get('/new_weixin/follow_rules/')
    print(response.context['rule'])

    rule = response.context['rule']
    if rule == None:
        actual = {"answer": '', "material_id": 0, "type": 'text'}
    else:
        try:
            answers = json.loads(rule.answer)
            if len(answers) > 0:
                rule.answer = answers[0]['content']
        except:
            pass

        actual = {
            "answer": rule['answer']['content'],
            "material_id": rule['material_id'],
            "type": "news" if rule['type'] == NEWS_TYPE else 'text'
        }
    expected = json.loads(context.text)
    bdd_util.assert_dict(expected, actual)
def step_impl(context):
	if hasattr(context, 'client'):
		context.client.logout()
	context.client = bdd_util.login(user)
	webapp_id = context.client.user.profile.webapp_id

	webapp_users = json.loads(context.text)

	grade = MemberGrade.get_default_grade(webapp_id)
	Member.objects.all().delete()
	WebAppUser.objects.all().delete()
	for webapp_user in webapp_users:
		member = Member.objects.create(
			token = MEMBER_TOKEN,
			webapp_id = webapp_id,
			user_icon = '',
			username_hexstr = member['name'],
			grade = grade,
			remarks_name = '',
			is_for_test = True
		)
		WebAppUser.objects.create(
			token = "123",
			webapp_id = webapp_id,
			member_id = 0
		)
Example #9
0
def step_impl(context, user):
    context.client = bdd_util.login(user)
    client = context.client
    user = UserFactory(username=user)

    context.employees = json.loads(context.text)

    response = context.client.get('/account/sub_users/')
    response_datas = response.context['user_has_sub_users']
    print('--------------')
    print(context.employees)
    print('======')
    print(response_datas)
    for employee in context.employees:
        print(']]]]]]]]]]]]]]]]]')
        print(employee['employees_account'])
        print(employee['remark'])
        print(
            response_datas.filter(
                sub_user__username=employee['employees_account'],
                remark=employee['remark']).count())
        context.tc.assertEquals(
            response_datas.filter(
                sub_user__username=employee['employees_account'],
                remark=employee['remark']).count(), 1)
Example #10
0
def step_impl(context, user):
    MarketToolsTemplateMessage.objects.all().delete()
    MarketToolsTemplateMessageDetail.objects.all().delete()
    if hasattr(context, 'client') is False:
        context.client = bdd_util.login(user, password=None, context=context)
    context.template_message_details = json.loads(context.text)
    context.message_detail = {}
    for template_message_detail in context.template_message_details:
        industry_type = INDUSTRY2TYPE.get(template_message_detail['industry'])
        template_message = MarketToolsTemplateMessage.objects.create(
            industry=industry_type, title=template_message_detail['headline'])
        type = 1
        if template_message_detail['type'] == u'主营行业':
            type = 0
        status = 1
        if template_message_detail['status'] == u'未启用':
            status = 0
        message_detail = MarketToolsTemplateMessageDetail.objects.create(
            owner=context.client.user,
            template_message=template_message,
            industry=industry_type,
            template_id=template_message_detail['template_id'],
            first_text='',
            remark_text='',
            type=type,
            status=status)
        key = '%d-%s-%s' % (context.client.user.id,
                            template_message_detail['industry'],
                            template_message_detail['headline'])
        context.message_detail[key] = message_detail
Example #11
0
def step_impl(context, user, webapp_user_name):
	if hasattr(context, 'client'):
		context.client.logout()
	context.client = bdd_util.login(user)
	client = context.client
	json_data = json.loads(context.text)
	openid = '%s_%s' % (webapp_user_name, user)
	member = __get_member_by_openid(openid)
	url = '/member/api/follow_relations/?member_id=%s' % member.id
	response = client.get(bdd_util.nginx(url))

	items = json.loads(response.content)['data']['items']
	actual_member_rellations = []
	for data_item in items:
		actual_member_rellation = {}
		actual_member_rellation['name'] = data_item['username']
		if str(data_item['source']) == '-1' or str(data_item['source']) == '0':
			actual_member_rellation['source'] = u'直接关注'
		elif str(data_item['source']) == '1':
			actual_member_rellation['source'] = u'推广扫码'
		else:
			actual_member_rellation['source'] = u'会员分享'

		if str(data_item['is_fans']) == '0':
			actual_member_rellation['is_fans'] = u'否'

		if str(data_item['is_fans']) == '1':
			actual_member_rellation['is_fans'] = u'是'

		actual_member_rellations.append(actual_member_rellation)
	bdd_util.assert_list(actual_member_rellations, json_data)

	context.click_member = None
	context.member_clicked = False
Example #12
0
def step_impl(context, user, mp_user_name):
    old_cookies = context.client.cookies
    if hasattr(context,
               'client') and (context.client.user.username != mp_user_name):
        context.client.logout()
    context.client = bdd_util.login(mp_user_name)
    client = context.client
    client.reset()

    mp_user = User.objects.get(username=mp_user_name)
    profile = UserProfile.objects.get(user_id=mp_user.id)
    openid = '%s_%s' % (user, mp_user_name)

    url = '/simulator/api/mp_user/subscribe/?version=2'
    data = {
        "timestamp": "1402211023857",
        "webapp_id": profile.webapp_id,
        "from_user": openid
    }
    response = client.post(url, data)
    response_data = json.loads(response.content)
    context.qa_result = response_data
    context.tc.assertEquals(200, response_data['code'])

    if getattr(context, 'in_manual_delete_cookie_mode', False):
        context.client.cookies = old_cookies
    else:
        pass

    webapp_owner_id = bdd_util.get_user_id_for(mp_user_name)
    context.webapp_owner_id = webapp_owner_id
    context.webapp_id = profile.webapp_id
    __fill_member_info(context, user, openid)
    #把会员设置为真实用户 add by duhao 2015-07-29
    Member.objects.update(is_for_test=False)
Example #13
0
def step_impl(context, user):
    user_id = User.objects.get(username=user).id
    mall_type = UserProfile.objects.get(user_id=user_id).webapp_type
    if user != context.client.user.username:
        context.client.logout()
        context.client = bdd_util.login(user)

    url = '/mall2/api/order_list/'

    query_params = dict()

    if hasattr(context, 'query_params'):
        query_params = context.query_params
        query_params['count_per_page'] = 99999
        delattr(context, 'query_params')
    response = context.client.get(url, query_params)

    items = json.loads(response.content)['data']['items']
    actual_orders = __get_order_items_for_self_order(items)

    expected = json.loads(context.text)
    for order in expected:
        # if order.get('payment_time',''):
        #     del order['payment_time']
        if 'actions' in order:
            order['actions'] = order['actions']  # 暂时不验证顺序

    bdd_util.assert_list(expected, actual_orders)
def step_impl(context, user):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)

    context.courses = json.loads(context.text)
    for course in context.courses:
        __add_shengjing_course(context, course)
Example #15
0
def step_impl(context, user):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)

    context.red_envelopes = json.loads(context.text)
    for red_envelope in context.red_envelopes:
        __add_red_envelope(context, red_envelope)
Example #16
0
def step_impl(context, user):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)

    context.votes = json.loads(context.text)
    for vote in context.votes:
        __add_vote(context, vote)
def step_impl(context, user):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)
    client = context.client
    response = context.client.get('/mall2/postage_list/')
    actual = response.context['postage_configs']
    expected = json.loads(context.text)
    bdd_util.assert_list(expected, actual)
Example #18
0
def step_impl(context, user, rule_patterns):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)

    context.tc.assertEquals(
        0,
        Rule.objects.filter(owner=context.client.user,
                            patterns=rule_patterns).count())
def step_impl(context, user):
	context.client = bdd_util.login(user)
	client = context.client
	content = json.loads(context.text)
	user_profile = __get_user(user).get_profile()

	sttings,created = ShengjingIntegralStrategySttings.objects.get_or_create(webapp_id=user_profile.webapp_id)
	sttings.binding_for_father = int(content['interal'])
	sttings.save()
Example #20
0
def step_impl(context, user):
    MarketToolsTemplateMessage.objects.all().delete()
    if hasattr(context, 'client') is False:
        context.client = bdd_util.login(user, password=None, context=context)
    context.industries = json.loads(context.text)
    for industry in context.industries:
        industry_type = INDUSTRY2TYPE.get(industry['name'])
        MarketToolsTemplateMessage.objects.create(industry=industry_type,
                                                  title=u'订单支付成功')
        MarketToolsTemplateMessage.objects.create(industry=industry_type,
                                                  title=u'商品已发出通知')
Example #21
0
def step_impl(context, user, name):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)
    client = context.client
    response = context.client.get('/mall2/api/supplier_list/',
                                  data={"name": name})
    supplier = json.loads(response.content)['data']['items'][0]
    response = context.client.post('/mall2/api/supplier_info/?_method=delete',
                                   {"id": supplier["id"]})
    context.del_supplier_res = response
def step_impl(context, user):
    if hasattr(context, 'client'):
        context.client.logout()

    context.client = bdd_util.login(user)
    profile = context.client.user.profile
    webapp_id = context.client.user.profile.webapp_id

    context.members = json.loads(context.text)
    for member in context.members:
        _update_member_by_name(webapp_id, member)
def step_impl(context, user):
	if hasattr(context, 'client'):
		context.client.logout()
	context.client = bdd_util.login(user)
	client = context.client

	response = client.get('/cms/api/categories/get/?version=1&sort_attr=-created_at&count_per_page=15&page=1')
	data = json.loads(response.content)['data']
	expected = json.loads(context.text)
	actual = data['items']
	bdd_util.assert_list(expected, actual)
Example #24
0
def step_impl(context, user):
    """TODO 弃用 改用 @when(u"{webapp_user_name}购买{webapp_owner_name}的商品")
    """
    if not hasattr(context.client.user, 'profile'):
        context.client.logout()
        context.client = bdd_util.login(user)
    profile = context.client.user.profile
    # webapp_id = context.client.user.profile.webapp_id

    context.orders = json.loads(context.text)
    for order in context.orders:
        steps_db_util.set_order_dict(order, profile)
def step_impl(context, user):
    context.client = bdd_util.login(user)
    client = context.client
    url = '/apps/shengjing/api/study_plan/course_list/get'
    response = client.get(url)
    courses = json.loads(response.content)['data']['items']
    actual_data = []
    for c in courses:
        actual_data.append({"name": c['name']})

    expected = json.loads(context.text)
    bdd_util.assert_list(expected, actual_data)
Example #26
0
def step_impl(context, user):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)
    client = context.client

    response = client.get('/member/member_tags/')
    member_tags = response.context['member_tags']
    tag_list = []
    for tag in member_tags:
        tag_list.append({"name": tag.name, "group_membership": tag.count})
    expected = json.loads(context.text)
    bdd_util.assert_list(expected, tag_list)
Example #27
0
def step_impl(context, user):
    context.client = bdd_util.login(user)
    client = context.client
    user = UserFactory(username=user)
    context.employees = json.loads(context.text)

    context.tc.assertEquals(
        UserHasSubUser.objects.filter(user=user).count(), 3)
    sub_users = UserHasSubUser.objects.filter(
        sub_user__username=context.employees[0]['employees_account'])

    id = sub_users[0].sub_user.id

    response = client.get('/account/sub_user/delete/?user_id=%d' % id)
Example #28
0
def step_impl(context, user):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)
    response = context.client.get('/market_tools/vote/')

    actual_votes = response.context['votes']
    actual_data = []
    for vote in actual_votes:
        actual_data.append({"name": vote.name})

    expected = json.loads(context.text)

    bdd_util.assert_list(expected, actual_data)
def step_impl(context, user):
	context.client = bdd_util.login(user)
	response = context.client.get('/market_tools/test_game/')

	actual_test_games = response.context['test_games']
	actual_data = []
	for test_game in actual_test_games:
		actual_data.append({
			"name": test_game.name
		})

	expected = json.loads(context.text)

	bdd_util.assert_list(expected, actual_data)
Example #30
0
def step_impl(context, user, name):
    if hasattr(context, 'client'):
        context.client.logout()
    context.client = bdd_util.login(user)
    client = context.client
    response = context.client.get('/mall2/api/supplier_list/',
                                  data={"name": name})
    expected = json.loads(context.text)
    actual = json.loads(response.content)['data']['items']
    if len(actual) == 0:
        actual = {}
    else:
        actual = actual[0]
    bdd_util.assert_dict(expected, actual)