def test_102_query_apply_result(self): """进件结果查询""" Assert.check_column("wxjk_project", self.env, self.r.get('ddq_3_periods_projectId')) GetSqlData.change_project_audit_status( project_id=self.r.get('ddq_3_periods_projectId'), environment=self.env) data = excel_table_byname(self.file, 'query_apply_result') param = json.loads(data[0]['param']) param.update({ "sourceProjectId": self.r.get('ddq_3_periods_sourceProjectId'), "projectId": self.r.get('ddq_3_periods_projectId') }) if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=self.env) self.assertEqual(rep['resultCode'], int(data[0]['resultCode'])) self.assertEqual(rep['content']['auditStatus'], 2)
def repurchase(period: int, environment: str, project_id: str, product: str) -> None: """ :param period: 1 :param environment: test/qa :param project_id: str :param product: str, 'jfx_sin,jfx_mul,rmkj,jfq,ckshd,cwshd,wxjk' :return: None """ if product == "wxjk": for i in range(0, 6): Universal.overdue(period + i, environment, project_id, 1) Universal._run_swap_task(product, environment) elif product == "jfx_mul": for i in range(0, 3): Universal.overdue(period + i, environment, project_id, 6) Universal._run_swap_task(product, environment) elif product == "rmkj": for i in range(0, 2): Universal.overdue(period + i, environment, project_id, 1) Universal._run_swap_task(product, environment) else: Universal.overdue(period, environment, project_id, 3) Universal._run_swap_task(product, environment) Universal.overdue(period, environment, project_id, 94) Universal.overdue(period + 1, environment, project_id, 3) Universal._run_swap_task(product, environment) Assert.check_swap(period, environment, project_id, False)
def overdue(period: int, environment: str, project_id: str, day: Optional[int] = None, month: Optional[int] = None, is_special_repurchase: Optional[bool] = False): """ :param period: 1 :param environment: test/qa :param project_id: str :param day: int :param month: int :param is_special_repurchase: 如果产品为卡卡贷/豆豆钱,则该字段值为True :return: """ plan_pay_date = None if all([day, month]): raise IOError("逾期时间只能有一个") elif (day is None) & (month is None): raise IOError("逾期时间至少有一个") elif day is not None: plan_pay_date = Common.get_new_time("before", "days", day).split(" ")[0] elif month is not None: plan_pay_date = str(date.today() - relativedelta(months=month)).split(" ")[0] GetSqlData.change_plan_pay_date(environment, project_id, period, plan_pay_date) GetSqlData.change_fee_plan_pay_date(environment, project_id, period, plan_pay_date) Common().trigger_task("overdueForCloudloanJob", environment) Assert.check_overdue(period, environment, project_id)
def test_115_repayment(self): """还款流水推送""" data = excel_table_byname(self.file, 'repayment') param = json.loads(data[0]['param']) repayment_plan_list = self.r.get("jfx_6_periods_repayment_plan") success_amount = 0.00 period = 1 plan_pay_date = GetSqlData.get_repayment_plan_date( project_id=self.r.get("jfx_6_periods_projectId"), environment=self.env, repayment_plan_type=1, period=period) repayment_detail_list = [] for i in json.loads(repayment_plan_list): if i['period'] == period: plan_detail = { "sourceRepaymentDetailId": Common.get_random("transactionId"), "payAmount": i['restAmount'], "planCategory": i['repaymentPlanType'] } success_amount = round( success_amount + plan_detail.get("payAmount"), 2) repayment_detail_list.append(plan_detail) param.update({ "sourceRequestId": Common.get_random("requestNum"), "sourceRepaymentId": Common.get_random("sourceProjectId"), "projectId": self.r.get("jfx_6_periods_projectId"), "sourceProjectId": self.r.get("jfx_6_periods_sourceProjectId"), "sourceUserId": self.r.get("jfx_6_periods_sourceUserId"), "serviceSn": Common.get_random("serviceSn"), "planPayDate": plan_pay_date['plan_pay_date'], "payTime": Common.get_time("-"), "successAmount": success_amount, "period": period }) param['repaymentDetailList'] = repayment_detail_list if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), environment=self.env, product="cloudloan") self.assertEqual(rep['resultCode'], int(data[0]['resultCode'])) Assert.check_repayment(True, self.env, self.r.get('jfx_6_periods_projectId'), param)
def test_116_repayment(self): """还款流水推送:提前全部结清""" data = excel_table_byname(self.file, 'repayment') param = json.loads(data[0]['param']) for per in range(1, 7): success_amount = GetSqlData.get_repayment_amount( project_id=self.r.get("jfx_6_periods_projectId"), environment=self.env, period=per) param.update({ "projectId": self.r.get('jfx_6_periods_projectId'), "transactionId": self.r.get('jfx_6_periods_transactionId'), "sourceProjectId": self.r.get('jfx_6_periods_sourceProjectId'), "sourcePlanId": Common.get_random('sourceProjectId'), "sourceRepaymentId": Common.get_random("transactionId"), "planPayDate": Common.get_repaydate(6)[per - 1], "payTime": Common.get_time('-'), "successAmount": float(success_amount), "period": per }) for i in range(len(param['repaymentDetailList'])): pay_detail = GetSqlData.get_repayment_plan_date( project_id=self.r.get('jfx_6_periods_projectId'), environment=self.env, repayment_plan_type=param['repaymentDetailList'][i] ['planCategory'], period=per) param['repaymentDetailList'][i].update({ "sourceRepaymentDetailId": Common.get_random("serviceSn"), "payAmount": float(pay_detail.get("cur_amount")) }) if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), environment=self.env, product="cloudloan") self.assertEqual(rep['resultCode'], int(data[0]['resultCode'])) Assert.check_repayment(True, self.env, self.r.get('jfx_6_periods_projectId'), param)
def test_118_return(self): """退货""" data = excel_table_byname(self.file, 'offline_repay') param = json.loads(data[0]['param']) plan_pay_date = GetSqlData.get_repayment_plan_date( project_id=self.r.get("jfqylv2_3_periods_projectId"), environment=self.env, repayment_plan_type=1, period=1) repayment_plan_list = json.loads( self.r.get("jfqylv2_3_periods_return_repayment_plan")) success_amount = 0.00 repayment_detail_list = [] for i in repayment_plan_list: plan_detail = { "sourceRepaymentDetailId": Common.get_random("transactionId"), "payAmount": i['amount'], "planCategory": i['repaymentPlanType'] } success_amount = round( success_amount + plan_detail.get("payAmount"), 2) repayment_detail_list.append(plan_detail) param.update({ "projectId": self.r.get("jfqylv2_3_periods_projectId"), "transactionId": self.r.get("jfqylv2_3_periods_sourceProjectId"), "sourceProjectId": self.r.get("jfqylv2_3_periods_sourceProjectId"), "sourceRepaymentId": Common.get_random("sourceProjectId"), "planPayDate": plan_pay_date['plan_pay_date'], "successAmount": success_amount, "repayType": 3, "period": repayment_plan_list[0]['period'], "payTime": Common.get_time("-") }) param['repaymentDetailList'] = repayment_detail_list if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=self.env) self.assertEqual(rep['resultCode'], int(data[0]['resultCode'])) Assert.check_repayment(True, self.env, self.r.get("jfqylv2_3_periods_projectId"), param)
def test_117_deduction_apply_all_periods(self): """主动还款:连续还款整笔结清""" data = excel_table_byname(self.file, 'deduction_apply') param = json.loads(data[0]['param']) repayment_plan_list = self.r.get("rmkj_9_periods_repayment_plan") maturity = GetSqlData.get_maturity( project_id=self.r.get("rmkj_9_periods_projectId"), environment=self.env) for period in range(1, maturity + 1): success_amount = 0.00 repayment_detail_list = [] for i in json.loads(repayment_plan_list): if i['period'] == period: plan_detail = { "period": i['period'], "payAmount": i['restAmount'], "planCategory": i['repaymentPlanType'] } success_amount = round( success_amount + plan_detail.get("payAmount"), 2) repayment_detail_list.append(plan_detail) param.update({ "sourceRequestId": Common.get_random("requestNum"), "projectId": self.r.get("rmkj_9_periods_projectId"), "sourceProjectId": self.r.get("rmkj_9_periods_sourceProjectId"), "sourceUserId": self.r.get("rmkj_9_periods_sourceUserId"), "serviceSn": Common.get_random("serviceSn"), "payTime": Common.get_time("-"), "successAmount": success_amount, "period": period }) param['repaymentDetailList'] = repayment_detail_list if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=self.env) self.assertEqual(rep['resultCode'], int(data[0]['resultCode'])) Assert.check_repayment(True, self.env, self.r.get("rmkj_9_periods_projectId"), param) self.r.set("rmkj_9_periods_deductionTaskId", rep['content']['deductionTaskId'])
def test_113_offline_repay_repayment(self, r, env, red): """线下还款流水推送:正常还一期""" data = excel_table_byname(self.file, 'offline_repay') param = json.loads(data[0]['param']) period = 1 plan_pay_date = GetSqlData.get_repayment_plan_date( project_id=r.get(red["project_id"]), environment=env, repayment_plan_type=1, period=period ) repayment_plan_list = r.get(red["repayment_plan"]) success_amount = 0.00 repayment_detail_list = [] for i in json.loads(repayment_plan_list): if i['period'] == period: plan_detail = { "sourceRepaymentDetailId": Common.get_random("transactionId"), "payAmount": i['restAmount'], "planCategory": i['repaymentPlanType'] } success_amount = round(success_amount + float(plan_detail.get("payAmount")), 2) repayment_detail_list.append(plan_detail) param.update( { "projectId": r.get(red["project_id"]), "transactionId": r.get(red["transaction_id"]), "sourceProjectId": r.get(red["source_project_id"]), "sourceRepaymentId": Common.get_random("sourceProjectId"), "planPayDate": plan_pay_date['plan_pay_date'], "successAmount": success_amount, "payTime": Common.get_time("-"), "period": period } ) param['repaymentDetailList'] = repayment_detail_list if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response( faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=env ) assert rep['resultCode'] == int(data[0]['resultCode']) Assert.check_repayment(True, env, r.get(red["project_id"]), param)
def compensation(period: int, environment: str, project_id: str, product: str) -> None: """ :param period: 1 :param environment: test/qa :param project_id: str :param product: str, 'jfx_sin,jfx_mul,rmkj,jfq,ckshd,cwshd,wxjk' :return: None """ if product == "wxjk": Universal.overdue(period, environment, project_id, 1) elif product == "jfx_mul": Universal.overdue(period, environment, project_id, 6) else: Universal.overdue(period, environment, project_id, 3) Universal._run_swap_task(product, environment) Assert.check_swap(period, environment, project_id)
def test_111_query_repayment_plan(self, r, env, red): """还款计划查询""" data = excel_table_byname(self.file, 'repayment_plan') param = json.loads(data[0]['param']) param.update({"projectId": r.get(red["project_id"])}) if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=env) assert int(data[0]['resultCode']) == rep['resultCode'] Assert.check_repayment(False, env, r.get(red["project_id"])) r.setex(red["repayment_plan"], 72000, json.dumps(rep['content']['repaymentPlanList']))
def test_101_query_result(self, r, env, red): """授信结果查询""" Assert.check_column("jfx_credit", env, r.get(red["credit_id"])) GetSqlData.credit_set(environment=env, credit_id=r.get(red["credit_id"])) data = excel_table_byname(self.file, 'credit_query_result') param = json.loads(data[0]['param']) param.update({"creditId": r.get(red["credit_id"])}) if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=env) assert int(data[0]['resultCode']) == rep['resultCode']
def test_115_deduction_apply(self, r, env, red): """主动还款:正常还一期""" data = excel_table_byname(self.file, 'deduction_apply') param = json.loads(data[0]['param']) repayment_plan_list = r.get(red["repayment_plan"]) success_amount = 0.00 repayment_detail_list = [] period = 1 for i in json.loads(repayment_plan_list): if i['period'] == period: plan_detail = { "period": period, "payAmount": i['restAmount'], "planCategory": i['repaymentPlanType'] } success_amount = round( success_amount + plan_detail.get("payAmount"), 2) repayment_detail_list.append(plan_detail) param.update({ "sourceRequestId": Common.get_random("requestNum"), "projectId": r.get(red["project_id"]), "sourceProjectId": r.get(red["source_project_id"]), "sourceUserId": r.get(red["source_user_id"]), "serviceSn": Common.get_random("serviceSn"), "payTime": Common.get_time("-"), "successAmount": success_amount, "period": period }) param['repaymentDetailList'] = repayment_detail_list if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) headers["X-TBC-SKIP-SIGN"] = "true" rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=env) assert rep['resultCode'] == int(data[0]['resultCode']) Assert.check_repayment(True, env, r.get(red["project_id"]), param) r.setex(red["deduction_task_id"], 72000, rep['content']['deductionTaskId'])
def test_113_repayment(self, r, env, red): """还款流水推送:全部结清""" data = excel_table_byname(self.file, 'repayment') param = json.loads(data[0]['param']) for per in range(1, 13): repayment_plan_list = r.get(red["repayment_plan"]) success_amount = 0.00 repayment_detail_list = [] for i in json.loads(repayment_plan_list): if i['period'] == per: plan_detail = { "sourceRepaymentDetailId": Common.get_random("transactionId"), "payAmount": i['restAmount'], "planCategory": i['repaymentPlanType'] } success_amount = round( success_amount + plan_detail.get("payAmount"), 2) repayment_detail_list.append(plan_detail) param.update({ "sourceRequestId": Common.get_random("requestNum"), "projectId": r.get(red["project_id"]), "sourceProjectId": r.get(red["source_project_id"]), "sourceUserId": r.get(red["source_user_id"]), "serviceSn": Common.get_random("serviceSn"), "payTime": Common.get_time("-"), "successAmount": success_amount, "period": per }) param['repaymentDetailList'] = repayment_detail_list if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), environment=env, product="cloudloan") assert rep['resultCode'] == int(data[0]['resultCode']) Assert.check_repayment(True, env, r.get(red["project_id"]), param)
def test_110_query_repaymentplan(self): """还款计划查询""" data = excel_table_byname(self.file, 'repayment_plan') param = json.loads(data[0]['param']) param.update({"projectId": self.r.get('jfx_projectId')}) if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response( faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=self.env ) self.assertEqual(int(data[0]['resultCode']), rep['resultCode']) Assert.check_repayment(False, self.env, self.r.get("jfx_projectId")) self.r.set("jfx_repayment_plan", json.dumps(rep['content']['repaymentPlanList']))
def test_101_query_result(self): """授信结果查询""" Assert.check_column("jfx_credit", self.env, self.r.get("jfx_6_periods_creditId")) GetSqlData.credit_set(environment=self.env, credit_id=self.r.get("jfx_6_periods_creditId")) data = excel_table_byname(self.file, 'credit_query_result') param = json.loads(data[0]['param']) param.update({"creditId": self.r.get('jfx_6_periods_creditId')}) if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=self.env) self.assertEqual(int(data[0]['resultCode']), rep['resultCode']) self.assertEqual(rep['content']['creditStatus'], 1)
def test_105_query_apply_result(self, r, env, red): """进件结果查询""" Assert.check_column("jfx_project", env, r.get(red["project_id"])) GetSqlData.change_project_audit_status(project_id=r.get( red["project_id"]), environment=env) data = excel_table_byname(self.file, 'project_query_apply_result') param = json.loads(data[0]['param']) param.update({ "sourceProjectId": r.get(red["source_project_id"]), "projectId": r.get(red["project_id"]) }) if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=env) assert int(data[0]['resultCode']) == rep['resultCode']
def test_112_query_repayment_plan(self): """国投云贷还款计划查询""" data = excel_table_byname(self.file, 'query_repayment_plan') param = json.loads(data[0]['param']) param.update({ "transactionId": self.r.get("rmkj_9_periods_sourceProjectId"), "projectId": self.r.get("rmkj_9_periods_projectId") }) if len(data[0]['headers']) == 0: headers = None else: headers = json.loads(data[0]['headers']) rep = Common.response(faceaddr=data[0]['url'], headers=headers, data=json.dumps(param, ensure_ascii=False), product="cloudloan", environment=self.env) self.assertEqual(rep['resultCode'], int(data[0]['resultCode'])) Assert.check_repayment(False, self.env, self.r.get("rmkj_6_periods_projectId")) self.r.set("rmkj_9_periods_repayment_plan", json.dumps(rep['content']['repaymentPlanList']))