def test_exchange_post(self, with_login): exchange_api = ExchangeManagementApi() user = self.data['user'] email = user['email'] password = user['password'] token = with_login('tenant', [exchange_api], email, password) id_number = get_random_id_number() individual_verify('tenant', id_number, token) e = Exchange(exchange_api, token) exchange = e.get_exchange() exchange_api.exchange_post(exchange) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'pending' # 初审不通过 audit_api = AuditApi() uid = self.data['account_id'] admin_token = get_admin_token() set_login_status(audit_api, admin_token) rv = audit_api.tenant_audits_get(uid=uid, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='disapproved', failure_type='ENTERPRISE_LICENSE') audit_api.tenant_audits_audit_post(res) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'disapproved'
def company_verify(platform: str, social_number: str, token, verify_status: str = "ACCEPTED", reject_type: str = str()): """ 申请公司实名审核以及通过通过指定社会统一编号下的所有待审核的认证(供其他人调用) :param reject_type: 失败类型 [ INDIVIDUAL_ID, INDIVIDUAL_PASSPORT, ENTERPRISE_LOGO, ENTERPRISE_LICENSE, INDIVIDUAL_ABNORMAL, ENTERPRISE_ABNORMAL, USER_REPORT_ABNORMAL ] :param verify_status: 验证状态ACCEPTED(通过)、REJECTED(未通过) :param platform:平台类型 Enum("main", "sponsor", "staff", "tenant", "venture") :param social_number: 社会统一编号 :param token: 用户登录token """ manager = PlatformManager(platform) manager.apply_company_verify(social_number, token) admin_token = get_admin_token() audit_api = AuditApi() audit_api.api_client.set_default_header("Authorization", "Bearer " + admin_token) rv = audit_api.accounts_company_audits_tasks_audit_num_get() assert rv.pending_num >= 1 apply_list = get_company_apply_list(audit_api, social_number) for apply_id in apply_list: handle_company_apply(audit_api, apply_id, verify_status, reject_type)
def handle_company_apply(audit_api: AuditApi, apply_id: str, verify_status: str, reject_type: str = str()): if reject_type: post_info = PostCompanyAuditRequest(id=apply_id, status=verify_status, reject_type=reject_type, reject_reason="reason") else: post_info = PostCompanyAuditRequest(id=apply_id, status=verify_status) audit_api.accounts_company_audits_post(body=post_info)
def individual_verify(platform: str, id_number: str, token, verify_status: str = "ACCEPTED", reject_type: str = str()): """ 申请个人实名审核以及通过通过指定证件id下的所有待审核的认证(供其他人调用) :param reject_type: 失败类型 [ INDIVIDUAL_ID, INDIVIDUAL_PASSPORT, ENTERPRISE_LOGO, ENTERPRISE_LICENSE, INDIVIDUAL_ABNORMAL, ENTERPRISE_ABNORMAL, USER_REPORT_ABNORMAL ] :param verify_status: 验证状态approved(通过)、disapproved(未通过) :param token: 用户登录token :param platform: 平台类型 Enum("main", "sponsor", "staff", "tenant", "venture") :param id_number: 证件号码 """ manager = PlatformManager(platform) manager.apply_individual_verify(id_number, token) admin_token = get_admin_token() audit_api = AuditApi() audit_api.api_client.set_default_header("Authorization", "Bearer " + admin_token) apply_list = get_individual_apply_list(audit_api, id_number) for apply_id in apply_list: handle_individual_apply(audit_api, apply_id, verify_status, reject_type)
def test_exchange(self, with_login): manager = PlatformManager('tenant') account_api = AccountApi() api = manager.account_api verify_api = manager.verify_api user = register_with_login('tenant', with_login, [api, verify_api, account_api]) # 绑定电话 email = user.get('email') faker = Faker('zh_CN') phone = faker.phone_number() verify = verify_info(manager, email, "bind_phone") manager.bind_phone(phone, DEFAULT_VERIFY_CODE, area_code="+86", token=verify.token) account_info = account_api.accounts_account_info_get() account_id = account_info.account_info.account_id id_number = get_random_id_number() individual_verify('tenant', id_number, user['token']) e_api = StaffExchangeManagementApi() a_api = AccountManagementApi() admin_token = get_admin_token() audit_api = AuditApi() set_login_status(audit_api, admin_token) set_login_status(e_api, admin_token) set_login_status(a_api, admin_token) # 用户列表 rv = a_api.accounts_investors_get(account_id=account_id) assert rv.items # 后台开通交易所 req = { "accountId": account_id, "area": "+86", "email": str(int(time.time())) + "@qq.com", "logo": "", "name": str(int(time.time())), "phone": "15548494655", "tags": "" } e_api.exchange_post(req) # 交易所审核列表 rv = audit_api.tenant_audits_get(uid=account_id) item = rv.items[0] assert item.status == 'approved'
def test_investors(self, with_login): """3.未开通交易所——获取投资人列表列表———投资人详情(exchange id is None)""" manager = PlatformManager('tenant') account_api = AccountApi() api = manager.account_api verify_api = manager.verify_api user = register_with_login('tenant', with_login, [api, verify_api, account_api]) # 绑定电话 email = user.get('email') faker = Faker('zh_CN') phone = faker.phone_number() verify = verify_info(manager, email, "bind_phone") manager.bind_phone(phone, DEFAULT_VERIFY_CODE, area_code="+86", token=verify.token) account_info = account_api.accounts_account_info_get() account_id = account_info.account_info.account_id exchange_api = ExchangeManagementApi() email, password = user['email'], user['password'] token = with_login('tenant', [exchange_api], email, password) id_number = get_random_id_number() individual_verify('tenant', id_number, token) e = Exchange(exchange_api, token) exchange = e.get_exchange() exchange_api.exchange_post(exchange) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'pending' audit_api = AuditApi() admin_token = get_admin_token() set_login_status(audit_api, admin_token) rv = audit_api.tenant_audits_get(uid=account_id, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='approved') audit_api.tenant_audits_audit_post(res) # 复审不通过 res = PostTenantReAuditRequest(id=task_id, status='disapproved', failure_type='ENTERPRISE_LICENSE') audit_api.tenant_audits_re_audit_post(res) api = AccountManagementApi() admin_token = get_admin_token() set_login_status(api, admin_token) a_api = AccountApi() token = with_login('tenant', [a_api], email, password) account_info = a_api.accounts_account_info_get() account_id = account_info.account_info.account_id rv = api.accounts_investors_get(account_id=account_id) investors = rv.items assert len(investors) > 0 rv = api.accounts_accounts_id_get(id=account_id) assert rv.basic_info.exchange_id is None
def test_exchange_post(self, with_login): user = self.data['user'] exchange_api = ExchangeManagementApi() email, password = user['email'], user['password'] token = with_login('tenant', [exchange_api], email, password) id_number = get_random_id_number() individual_verify('tenant', id_number, token) e = Exchange(exchange_api, token) exchange = e.get_exchange() exchange_api.exchange_post(exchange) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'pending' audit_api = AuditApi() uid = self.data['account_id'] admin_token = get_admin_token() set_login_status(audit_api, admin_token) rv = audit_api.tenant_audits_get(uid=uid, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='approved', failure_type='ENTERPRISE_LICENSE') audit_api.tenant_audits_audit_post(res) # 复审 res = PostTenantReAuditRequest(id=task_id, status='approved', failure_type='ENTERPRISE_LICENSE') audit_api.tenant_audits_re_audit_post(res) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'approved' rv = exchange_api.exchange_exchange_id_get() exchange_id = rv.id TestExchange10.data['exchange_id'] = exchange_id TestExchange10.data['exchange'] = exchange # 用另外一个账号再创建一个交易所 manager = PlatformManager('tenant') account_api = AccountApi() api = manager.account_api verify_api = manager.verify_api user = register_with_login('tenant', with_login, [api, verify_api, account_api]) token1 = user['token'] id_number = get_random_id_number() individual_verify('tenant', id_number, token1) exchange1 = e.get_exchange() exchange_api.exchange_get() name_used = exchange1.name # 用已有的交易所名称更新前一个交易所 r = GetExchangeRequest(name=name_used) try: exchange_api.exchange_put(r) except ApiException as e: assert e.status == 400 else: assert False, '交易所名称已经注册'
def get_individual_apply_list(audit_api: AuditApi, id_number: str) -> list: """ 获取制定证件号下所有待审核的id :param audit_api: audit_api实例化对象 :param id_number: 证件号 :return: """ resp = audit_api.accounts_individual_audits_get(id_number=id_number, status="APPLIED") return [item.id for item in resp.items]
def get_company_apply_list(audit_api: AuditApi, social_code: str) -> list: """ 获取指定公司的待审核的实名认证列表 :param audit_api: 借口实例化对象 :param social_code: 社会统一编号 :return: """ resp = audit_api.accounts_company_audits_get(social_number=social_code, status="APPLIED") return [item.id for item in resp.items]
def test_apply_company_verify(self, with_login): exchange_api = ExchangeManagementApi() user = self.data['user'] email, password = user['email'], user['password'] social_code = get_social_code() token = with_login('tenant', [exchange_api], email, password) company_verify('tenant', social_code, token) a_api = AuditApi() admin_token = get_admin_token() set_login_status(a_api, admin_token) rv = a_api.accounts_company_audits_get(social_number=social_code, status='ACCEPTED') item = rv.items[0] account_id = item.account_id rv = a_api.accounts_company_audits_id_get(account_id) assert rv.account_id == account_id e = Exchange(exchange_api, token) exchange = e.get_exchange() exchange_api.exchange_post(exchange)
def test_coin_market(self, with_login): manager = PlatformManager('tenant') m_api = MarketManagementApi() e_api = ExchangeManagementApi() api = manager.account_api verify_api = manager.verify_api account_api = AccountApi() user = register_with_login( 'tenant', with_login, [api, verify_api, m_api, e_api, account_api]) self.data['user'] = user token = user['token'] email = user.get('email') # 绑定电话 faker = Faker('zh_CN') phone = faker.phone_number() verify = verify_info(manager, email, "bind_phone") manager.bind_phone(phone, DEFAULT_VERIFY_CODE, area_code="+86", token=verify.token) id_number = get_random_id_number() individual_verify('tenant', id_number, token) exchange_api = ExchangeManagementApi() e = Exchange(exchange_api, token) exchange = e.get_exchange() e_api.exchange_post(exchange) # 获取交易对市场列表 try: m_api.markets_get() except ApiException as e: # 交易所不存在 assert e.status == 400 else: assert False, '市场应当不存在' # 初审复审 rv = account_api.accounts_account_info_get() account_id = rv.account_info.account_id self.data['account_id'] = account_id audit_api = AuditApi() admin_token = get_admin_token() set_login_status(audit_api, admin_token) rv = audit_api.tenant_audits_get(uid=account_id, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='approved') audit_api.tenant_audits_audit_post(res) # 复审 res = PostTenantReAuditRequest(id=task_id, status='approved') audit_api.tenant_audits_re_audit_post(res) rv = e_api.exchange_exchange_id_get() exchange_id = rv.id self.data['exchange_id'] = exchange_id
def test_exchange_post(self, with_login): audit_api = AuditApi() user = self.data['user'] email = user['email'] password = user['password'] exchange_api = ExchangeManagementApi() e_api = ExchangeApi() f_api = FavoriteManagementApi() token = with_login('tenant', [exchange_api, e_api, f_api], email, password) id_number = get_random_id_number() individual_verify('tenant', id_number, token) e = Exchange(exchange_api, token) exchange = e.get_exchange() exchange_api.exchange_post(exchange) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'pending' admin_token = get_admin_token() set_login_status(audit_api, admin_token) # 初审 uid = self.data['account_id'] rv = audit_api.tenant_audits_get(uid=uid, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='approved') audit_api.tenant_audits_audit_post(res) # 初审详情 rv = audit_api.tenant_audits_results_id_company_audit_get(task_id) assert rv.audit_status == 'approved' assert rv.uid == uid # 复审 res = PostTenantReAuditRequest(id=task_id, status='disapproved') audit_api.tenant_audits_re_audit_post(res) # 复审详情 rv = audit_api.tenant_audits_results_id_company_re_audit_get(task_id) assert rv.audit_status == 'approved' assert rv.uid == uid assert rv.re_status == 'disapproved' rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'disapproved'
def handle_individual_apply(audit_api: AuditApi, apply_id: str, verify_status: str, reject_type: str = str()): """ 通过指定申请id的个人认证 :param reject_type: 失败类型 [ INDIVIDUAL_ID, INDIVIDUAL_PASSPORT, ENTERPRISE_LOGO, ENTERPRISE_LICENSE, INDIVIDUAL_ABNORMAL, ENTERPRISE_ABNORMAL, USER_REPORT_ABNORMAL ] :param verify_status: 验证状态ACCEPTED(通过)、REJECTED(未通过) :param audit_api: :param apply_id: """ if reject_type: post_info = PostIndividualAuditRequest(id=apply_id, status=verify_status, reject_type=reject_type, rejected_reason="reason") else: post_info = PostIndividualAuditRequest(id=apply_id, status=verify_status) audit_api.accounts_individual_audits_post(post_info)
def test_apply_company_verify(self, with_login): exchange_api = ExchangeManagementApi() user = self.data['user'] email, password = user['email'], user['password'] social_code = get_social_code() token = with_login('tenant', [exchange_api], email, password) company_verify('tenant', social_code, token, 'REJECTED', 'INDIVIDUAL_PASSPORT') a_api = AuditApi() admin_token = get_admin_token() set_login_status(a_api, admin_token) rv = a_api.accounts_company_audits_get(social_number=social_code, status='REJECTED') item = rv.items[0] account_id = item.account_id rv = a_api.accounts_company_audits_id_get(account_id) assert rv.account_id == account_id e = Exchange(exchange_api, token) exchange = e.get_exchange() try: exchange_api.exchange_post(exchange) except ApiException as e: assert e.status == 400 else: assert False, '企业未认证通过,不应该创建交易所'
def test_exchange_post(self, with_login): exchange_api = ExchangeManagementApi() user = self.data['user'] email, password = user['email'], user['password'] token = with_login('tenant', [exchange_api], email, password) id_number = get_random_id_number() individual_verify('tenant', id_number, token) e = Exchange(exchange_api, token) exchange = e.get_exchange() exchange_api.exchange_post(exchange) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'pending' # 初审 audit_api = AuditApi() admin_token = get_admin_token() set_login_status(audit_api, admin_token) uid = self.data['account_id'] rv = audit_api.tenant_audits_get(uid=uid, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='approved', failure_type='ENTERPRISE_LICENSE') audit_api.tenant_audits_audit_post(res) # 复审 res = PostTenantReAuditRequest(id=task_id, status='approved', failure_type='ENTERPRISE_LICENSE') audit_api.tenant_audits_re_audit_post(res) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'approved' rv = exchange_api.exchange_get() assert rv.name == exchange.name assert rv.logo_key == exchange.logo assert rv.email == exchange.email assert rv.nationality == exchange.nationality exchange.logo = img1 exchange_api.exchange_put(exchange) rv = exchange_api.exchange_get() assert rv.name == exchange.name assert rv.logo_key == exchange.logo assert rv.email == exchange.email assert rv.nationality == exchange.nationality """合并测试用例""" """12.交易所审核通过——获取交易所ID——获取交易所买卖方币种列表""" coin = exchange_api.exchange_exchange_coin_get() assert coin.seller_coin == []
def test_exchange_post(self, with_login): audit_api = AuditApi() user = self.data['user'] email = user['email'] password = user['password'] exchange_api = ExchangeManagementApi() token = with_login('tenant', [exchange_api], email, password) id_number = get_random_id_number() individual_verify('tenant', id_number, token) e = Exchange(exchange_api, token) exchange = e.get_exchange() exchange_api.exchange_post(exchange) admin_token = get_admin_token() set_login_status(audit_api, admin_token) # 初审 uid = self.data['account_id'] rv = audit_api.tenant_audits_get(uid=uid, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='approved', failure_type=1) audit_api.tenant_audits_audit_post(res) # 复审 res = PostTenantReAuditRequest(id=task_id, status='approved', failure_type=None) audit_api.tenant_audits_re_audit_post(res) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'approved' try: user1 = self.data['user1'] email1, password1 = user1['email'], user1['password'] exchange_api1 = ExchangeManagementApi() token1 = with_login('tenant', [exchange_api1], email1, password1) id_number = get_random_id_number() individual_verify('tenant', id_number, token1) # print(token1) exchange1 = e.get_exchange() exchange1.name = exchange.name # pprint(exchange1) exchange_api1.exchange_post(exchange1) except ApiException as e: assert e.status == 400 else: assert False, '交易所名称重复不应当创建' assert exchange_name_verify(token, exchange.name), '交易所名称应当已经存在'
def test_exchange_project(self): """2.新增项目——对接交易所——获取交易所卖买方币种列表 ——单一币种在单一交易所币对的行情统计""" exchange = new_exchange() exchange_api = ExchangeManagementApi() user_data = TestProject.data['user'] token = user_data['token'] exchange_api.api_client.set_default_header("Authentication-Token", token) account_api = AccountApi() account_api.api_client.set_default_header("Authentication-Token", token) account_info = account_api.accounts_account_info_get() account_id = account_info.accountInfo.accountId TestProject.data['account_id'] = account_id exchange_api.exchange_post(exchange) manager = PlatformManager('tenant') token = manager.login(sponsor_account, sponsor_pwd) audit_api = AuditApi() audit_api.api_client.set_default_header("Authentication-Token", token) # 初审 rv = audit_api.tenant_audits_get() audit_list = rv.items _id = None for each in audit_list: if each.uid == account_id: _id = each.id # 工单id assert not _id res = PostTenantAuditRequest(id=_id, is_data_received=True, status='approved', failure_type=1) audit_api.tenant_audits_audit_post(res) # 复审 PostTenantReAuditRequest(id=_id, status='approved', failure_type=None) exchange_id = exchange_api.exchange_exchange_id_get() # 对接项目方 contacts_api = ContactsApi() contacts_api.api_client.set_default_header("Authentication-Token", token) req = { 'exchangeId': exchange_id, 'projectId': TestProject.data['project_id'], 'sponsor': 'tenant' } contacts_api.contacts_post(req) # 获取交易所买卖方币种 m_api = MarketManagementApi() m_api.api_client.set_default_header("Authentication-Token", token) trading_coins = m_api.markets_trading_coins_get() seller_coin = trading_coins.seller_coin s_coin = seller_coin[0] buyer_coin = trading_coins.buyer_coin b_coin = buyer_coin[0] assert s_coin == TestProject.data['project']['short_name'] # 新建市场 res = PostOrderMarketRequest() res.seller_coin_id = s_coin.id res.buyer_coin_id = b_coin.id TestProject.data['s_coin'] = s_coin TestProject.data['b_coin'] = b_coin res.allotted_time = AllottedTime._6month res.fee_rate = TestProject.fee_rate # 配置交易对市场 rv = exchange_api.exchange_order_market_post(res) order_id = rv.order_id token = get_verify_token() p = PutOrderMarketRequest(order_id=order_id, token=token) exchange_api.exchange_order_market_put(p) # 单一币种在单一交易所币对的行情统计 dashboard_api = DashboardApi() dashboard_api.api_client.set_default_header("Authentication-Token", token) dashboard_api.dashboard_quotation_historical_data_post() dashboard_api.dashboard_quotations_summary_get(page_no=1, page_size=10, seller_coin=seller_coin) # 3.新增项目——对接交易所——获取交易所卖买方币种列表——单一币种在各交易所的行情概要 dashboard_api.dashboard_daily_statistics_get()
def test_applications8(self): faker = Faker() manager = PlatformManager("venture") email = random_email() password = faker.password() country = random_get_country_ob() manager.register(email=email, password=password, promotion_code=None, verification_code="666666", nationality_code=country.get("k"), nick_name='fghfg') token = manager.login(account=email, password=password) # 个人实名认证 individual_verify(platform="venture", id_number=get_random_id_number(), token=token) # 申请项目 project_name = get_random_name(2, 16) short_name = "O" + str(random.randint(10000, 99999)) full_name = get_random_name(2, 16) project_api = ProjectApi() set_login_status(project_api, token) pay = copy.deepcopy(dict(payload)) pay.update({ 'project_name': project_name, 'short_name': short_name, 'full_name': full_name }) req = ApplicationRequest(**pay) res = project_api.applications_post(body=req) project_apply_id = res.id # 创建保健方账号 staff_api = SponsorsManagermentApi() staff_token = get_admin_token() set_login_status(staff_api, staff_token) sponsor = { "account": get_random_name(6, 25), "password": faker.password(), "name": faker.user_name(), "email": faker.email(), "phone": faker.phone_number() } staff_api.staff_sponsors_post(post_sponsor=sponsor) # 新建交易所标签 website_api = WebsiteManagementApi() set_login_status(website_api, staff_token) website = { "name": "交易所标签" + str(random.randint(10000, 99999)), "otherLanguage": [{ "key": "英语", "value": "public_chain" }, { "key": "法语", "value": "public_chain" }] } website_api.exchange_tags_post(body=website) # 项目方获取保健列表 venture_api = SMApi() set_login_status(venture_api, token) res = venture_api.sponsors_get(page=1, name=sponsor.get("name")) item = res.items.pop() sponsor_id = item.id # 项目方设置保健方 project_api.applications_id_set_sponsor_put( id=project_apply_id, sponsor_request={"sponsorId": sponsor_id}) # 保健方登 # 保健项目 sponsor_api = SponsorsProjectApi() get_sponsor_token(account=sponsor.get("account"), password=sponsor.get("password"), email=sponsor.get("email"), api_list=[sponsor_api]) sponsor_api.projects_sponsor_put(put_project_sponsor_request={ "id": project_apply_id, "status": 1, "remark": "remark" }) # 币种配置列表 asset_api = AssetManagementApi() set_login_status(asset_api, staff_token) res = asset_api.asset_mgmt_coins_get(page=1, coin_name=short_name) coin_id = '' assert res.meta.total_count == 1 for item in res.items: assert item.coin_name == short_name coin_id = item.id # 初始化币种配置 payload1 = { "usdtPrice": "1", "rcTimes": 0, "wcTimes": 0, "withdrawRate": "1", "minWithdrawFee": "1", "minWithdraw": "1", "maxWithdraw": "1", "dayWithdrawTotal": "1", "minRecharge": "1", "addressTagSwitch": True, "addressType": "1", "addressUrl": "1", "txidUrl": "1" } asset_api.asset_mgmt_coins_id_init_put(id=coin_id, body=payload1) # 授权登录 api = AccountApi() set_login_status(api, token) api.create_platform() # 提交交易所申请 exchange_api = ExchangeManagementApi() set_login_status(exchange_api, token) exchange = { "email": email, "logo": "gdfgdvdfvdf", "name": "交易所" + str(random.randint(10000, 99999)), "nationality": "+86", "phone": '+86135678' + str(random.randint(10000, 99999)), "tags": website['name'] } exchange_api.exchange_post(exchange) # 交易所账号审核列表 audit_api = AuditApi() set_login_status(audit_api, staff_token) res = audit_api.tenant_audits_get(exchange_name=exchange['name']) audit_id = '' for item in res.items: audit_id = item.id # 交易所初审 audit = { "failureType": "string", "id": audit_id, "isDataReceived": True, "status": "approved" } audit_api.tenant_audits_audit_post(body=audit) # 交易所账号审核列表 res = audit_api.tenant_audits_get(exchange_name=exchange['name']) re_audit_id = '' for item in res.items: re_audit_id = item.id # 交易所账号复审 re_audit = { "failureType": "string", "id": re_audit_id, "status": "approved" } audit_api.tenant_audits_re_audit_post(body=re_audit) # 获取交易所id exchange_id_ = '' res = exchange_api.exchange_exchange_id_get() exchange_id_ = res.id # 获取项目列表 exchange_project_api = ExchangeProject() set_login_status(exchange_project_api, token) project_id = '' res = exchange_project_api.projects_get(coin_name=short_name) for item in res.items: project_id = item.project_id # 申请对接 contacts_api = ExchangeContacts() set_login_status(contacts_api, token) contacts = { "exchangeId": exchange_id_, "projectId": project_id, "sponsor": "tenant" } contacts_api.contacts_post(contacts) # 获取项目未处理的邀请记录数量 contacts_project_api = ContactsApi() set_login_status(contacts_project_api, token) res = contacts_project_api.contacts_invite_number_get(id=project_id) assert res.result == '1' # 获取交易所对接的项目列表 api = ProjectManagementApi() set_login_status(api, token) contacts_id = '' res = api.projects_id_contacts_get(id=project_id, sponsor="pending") for item in res.items: if item.exchange_name == exchange['name']: contacts_id = item.contact_id # 处理对接邀请 payload2 = {"contactId": contacts_id, "status": "accepted"} contacts_project_api.contacts_put(body=payload2) # 判断项目方与交易所是否已经申请对接 res = contacts_project_api.contacts_check_get(project_id=project_id, exchange_id=exchange_id_) assert res.result
def test_exchange_post(self, with_login): audit_api = AuditApi() user = self.data['user'] email = user['email'] password = user['password'] exchange_api = ExchangeManagementApi() e_api = ExchangeApi() ma_api = MainAccountApi() f_api = FavoriteManagementApi() token = with_login('tenant', [exchange_api, e_api, f_api, ma_api], email, password) id_number = get_random_id_number() individual_verify('tenant', id_number, token) e = Exchange(exchange_api, token) exchange = e.get_exchange() exchange_api.exchange_post(exchange) rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'pending' admin_token = get_admin_token() set_login_status(audit_api, admin_token) # 初审 uid = self.data['account_id'] rv = audit_api.tenant_audits_get(uid=uid, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='approved') audit_api.tenant_audits_audit_post(res) # 初审详情 rv = audit_api.tenant_audits_results_id_company_audit_get(task_id) assert rv.audit_status == 'approved' assert rv.uid == uid # 复审 res = PostTenantReAuditRequest(id=task_id, status='approved') audit_api.tenant_audits_re_audit_post(res) # 复审详情 rv = audit_api.tenant_audits_results_id_company_re_audit_get(task_id) assert rv.audit_status == 'approved' assert rv.uid == uid assert rv.re_status == 'approved' rv = exchange_api.exchange_exchange_status_get() assert rv.status == 'approved' # 合并测试用例 """2.新增交易所——交易所列表模糊查询——收藏——收藏列表(交易所)""" # res = PostPlatFormRegisterRequest() # ma_api.create_platform(body=res) rv = e_api.exchanges_suggestion_get(name=exchange.name) assert len(rv) >= 1 exchange_id = rv[0]['id'] # 收藏 req = PostFavoriterRequest() req.favorite_id = exchange_id req.type = 'exchange' f_api.favorites_post(req) # 收藏列表 rv = f_api.favorites_get(type='exchange') items = rv.items assert len(items) == 1 item = items[0] assert item.favorite_id == exchange_id favorite_record_id = item.id """6.收藏交易所成功——收藏列表(交易所)——取消收藏""" # 取消收藏 f_api.favorites_delete(favorite_record_id) rv = f_api.favorites_is_favorite_get(favorite_id=exchange_id, type='exchange') assert not rv.status
def test_market_exchange(self, with_login): """添加测试用例,两个交易所对接同一个市场,手动在数据库中修改两者为深度共享""" manager = PlatformManager('tenant') m_api = MarketManagementApi() e_api = ExchangeManagementApi() api = manager.account_api verify_api = manager.verify_api account_api = AccountApi() v_api = VerificationApi() pm = ProjectManagementApi() vc = VentureContactsApi() user = register_with_login( 'tenant', with_login, [vc, pm, api, v_api, verify_api, m_api, e_api, account_api]) self.data['user1'] = user token0 = user['token'] email = user.get('email') # 绑定电话 faker = Faker('zh_CN') phone = faker.phone_number() verify = verify_info(manager, email, "bind_phone") manager.bind_phone(phone, DEFAULT_VERIFY_CODE, area_code="+86", token=verify.token) id_number = get_random_id_number() individual_verify('tenant', id_number, token0) exchange_api = ExchangeManagementApi() e = Exchange(exchange_api, token0) exchange = e.get_exchange() e_api.exchange_post(exchange) rv = account_api.accounts_account_info_get() account_id = rv.account_info.account_id audit_api = AuditApi() admin_token = get_admin_token() set_login_status(audit_api, admin_token) rv = audit_api.tenant_audits_get(uid=account_id, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='approved', failure_type=1) audit_api.tenant_audits_audit_post(res) # 复审 res = PostTenantReAuditRequest(id=task_id, status='approved', failure_type=None) audit_api.tenant_audits_re_audit_post(res) rv = e_api.exchange_exchange_id_get() exchange_id = rv.id # 对接币种 contacts_api = ContactsApi() user = self.data['user'] email, password = user['email'], user['password'] token = with_login('tenant', [contacts_api], email, password) project_id = self.data['project_id'] req = { 'exchangeId': exchange_id, 'projectId': project_id, 'sponsor': 'tenant' } rv = contacts_api.contacts_post(req) # 处理对接邀请 rv = pm.projects_id_contacts_get(project_id, 'tenant') # 处理对接邀请 contact_id = rv.items[0].contact_id vc.contacts_put({'contactId': contact_id, 'status': 'accepted'}) # # rv = contacts_api.contacts_projects_exchange_id_get(exchange_id, # 'pending') # contact_id = rv.items[0].id # contacts_api.contacts_put({'contactId': contact_id, # 'status': 'accepted'}) rv = contacts_api.contacts_check_get(project_id=project_id, exchange_id=exchange_id) assert rv.result rv = e_api.exchange_exchange_coin_get() res = PostOrderMarketRequest() s_coin = self.data['s_coin'] b_coin = self.data['b_coin'] res.seller_coin_id = s_coin.id res.buyer_coin_id = b_coin.id res.allotted_time = AllottedTime._6month res.fee_rate = TestMarket1.fee_rate rv = e_api.exchange_exchange_coin_get() # 配置交易对市场 rv = e_api.exchange_order_market_post(res) order_id = rv.order_id usdt_id = b_coin.id # 充钱 free_charge(token0, usdt_id, account_id) data = { "challenge": "048ebbe51f829995db76ac4b81546403", "seccode": "048ebbe51f829995db76ac4b81546403", "validate": "true", "account": "mailto:[email protected]", "code": "666666", "secondCode": "Ls1w1w", "type": "pay" } rv = v_api.accounts_verify_post(data) p = PutOrderMarketRequest(order_id=order_id, token=rv.token) e_api.exchange_order_market_put(p) # 获取交易对市场 rv = m_api.markets_get() items = rv.items assert len(items) == 1
def test_close_market(self, with_login): """7.新增市场——获取交易对市场列表——关闭市场——获取交易对市场""" a_api = AccountApi() audit_api = AuditApi() v_api = VerificationApi() m_api = MarketManagementApi() e_api = ExchangeManagementApi() user = self.data['user'] email, password = user['email'], user['password'] token = with_login('tenant', [a_api, m_api, v_api, e_api], email, password) rv = m_api.markets_get() market_id = rv.items[0].id res = PostMarketCloseRequest(id=market_id, closing_reason='a' * 11) data = { "challenge": "048ebbe51f829995db76ac4b81546403", "seccode": "048ebbe51f829995db76ac4b81546403", "validate": "true", "account": "mailto:[email protected]", "code": "666666", "secondCode": "Ls1w1w", "type": "close_market" } rv = v_api.accounts_verify_post(data) res.token = rv.token rv = m_api.markets_close_post(res) res = m_api.markets_get() item = res.items[0] assert item.status == 'in_review' # 合并测试用例 """11.前台申请关闭交易市场——关闭交易所市场审核列表——关闭交易所市场审核详情初审 ——提交关闭交易所审核初审——关闭交易所市场审核列表""" # 审核列表 rv = e_api.exchange_exchange_id_get() exchange_id = rv.id admin_token = get_admin_token() set_login_status(audit_api, admin_token) rv = audit_api.shutdown_market_audits_get(page=1, exchange_id=exchange_id) item = rv.items[0] status = item.status assert status == 'audit' ticket_number = item.ticket_number rv = audit_api.shutdown_market_audits_id_tasks_audit_get(ticket_number) account_info = a_api.accounts_account_info_get() account_id = account_info.account_info.account_id assert rv.uid == account_id assert rv.exchange_id == exchange_id s = self.data['s_coin'].name b = self.data['b_coin'].name assert rv.trading_pair == f'{s}/{b}' # 初审 data = PostShutdownMarketAuditRequest(id=ticket_number, status='approved') audit_api.shutdown_market_audits_audit_post(data) res = m_api.markets_get() item = res.items[0] assert item.status == 'in_review' # 获取初审详情 rv = audit_api.shutdown_market_audits_id_audit_get(ticket_number) assert rv.audit_status == 'approved' rv = audit_api.shutdown_market_audits_get(exchange_id=exchange_id) item = rv.items[0] assert item.status == 're_audit' # 合并测试用例 """12.申请关闭交易所市场初审通过——关闭交易所市场审核列表 ——提交关闭交易所审核复审——关闭交易所市场审核列表""" rv = audit_api.shutdown_market_audits_id_tasks_re_audit_get( id=ticket_number) assert rv.audit_status == 'approved' # 复审 data = PostShutdownMarketReAuditRequest(id=ticket_number, status='approved') audit_api.shutdown_market_audits_re_audit_post(data) # 复审详情 rv = audit_api.shutdown_market_audits_id_re_audit_get(ticket_number) assert rv.audit_status == 'approved' assert rv.re_status == 'approved' rv = audit_api.shutdown_market_audits_get(exchange_id=exchange_id) item = rv.items[0] assert item.status == 'approved' res = m_api.markets_get() item = res.items[0] assert item.status == 'wait_close'
def test_coin_market(self, with_login): manager = PlatformManager('tenant') m_api = MarketManagementApi() e_api = ExchangeManagementApi() api = manager.account_api verify_api = manager.verify_api account_api = AccountApi() contacts_api = ContactsApi() vc = VentureContactsApi() venture_pm = ProjectManagementApi() tenant_ca = TenantContactsApi() user = register_with_login('tenant', with_login, [ api, verify_api, m_api, e_api, account_api, contacts_api, vc, venture_pm, tenant_ca ]) self.data['user2'] = user token = user['token'] email = user.get('email') # 绑定电话 faker = Faker('zh_CN') phone = faker.phone_number() verify = verify_info(manager, email, "bind_phone") manager.bind_phone(phone, DEFAULT_VERIFY_CODE, area_code="+86", token=verify.token) id_number = get_random_id_number() individual_verify('tenant', id_number, token) exchange_api = ExchangeManagementApi() e = Exchange(exchange_api, token) exchange = e.get_exchange() e_api.exchange_post(exchange) # 获取交易对市场列表 try: m_api.markets_get() except ApiException as e: # 交易所不存在 assert e.status == 400 else: assert False, '市场应当不存在' # 初审复审 rv = account_api.accounts_account_info_get() account_id = rv.account_info.account_id self.data['account_id'] = account_id audit_api = AuditApi() admin_token = get_admin_token() set_login_status(audit_api, admin_token) rv = audit_api.tenant_audits_get(uid=account_id, exchange_name=exchange.name, type='audit') task = rv.items[0] task_id = task.id res = PostTenantAuditRequest(id=task_id, is_data_received=True, status='approved') audit_api.tenant_audits_audit_post(res) # 复审 res = PostTenantReAuditRequest(id=task_id, status='approved') audit_api.tenant_audits_re_audit_post(res) rv = e_api.exchange_exchange_id_get() exchange_id = rv.id self.data['exchange_id'] = exchange_id rv = e_api.exchange_exchange_coin_get() seller_coin = rv.seller_coin buyer_coin = rv.buyer_coin b_coin = buyer_coin[0] if seller_coin: s_coin = seller_coin[0] else: # 对接币种 # 租户主动发起对接 project_id1 = self.data['project_id1'] project_id2 = self.data['project_id2'] req = { 'exchangeId': exchange_id, 'projectId': project_id1, 'sponsor': 'tenant' } contacts_api.contacts_post(req) # 项目方主动发起对接 req = { 'exchangeId': exchange_id, 'projectId': project_id2, 'sponsor': 'venture' } vc.contacts_post(req) rv1 = venture_pm.projects_id_contacts_get(project_id1, 'tenant') rv2 = tenant_ca.contacts_projects_exchange_id_get( exchange_id, 'pending') # 处理对接邀请 contact_id1 = rv1.items[0].contact_id contact_id2 = rv2.items[0].id vc.contacts_put({'contactId': contact_id1, 'status': 'accepted'}) rv = contacts_api.contacts_check_get(project_id=project_id1, exchange_id=exchange_id) # pprint(rv) contacts_api.contacts_put({ 'contactId': contact_id2, 'status': 'accepted' }) rv = vc.contacts_check_get(project_id2, exchange_id) rv = contacts_api.contacts_check_get(project_id1, exchange_id) assert rv.result rv = contacts_api.contacts_project_id_status_get(project_id1) assert rv.status == 'accepted' rv = contacts_api.contacts_project_id_status_get(project_id2) assert rv.status == 'accepted'