コード例 #1
0
 def test_applications6(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 = "M" + 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": get_random_name(2, 16),
         "nationality": "+86",
         "phone": '+8613567' + str(random.randint(100000, 999999)),
         "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)
     # 获取项目列表
     set_login_status(project_api, token)
     res = project_api.projects_get(page=1)
     id_ = ''
     for item in res.items:
         if item.project_name == project_name:
             assert item.full_name == full_name
             assert item.short_name == short_name
             assert item.init is True
             assert item.project_id == item.coin_id
             id_ = item.project_id
     # 申请接入交易所
     exchange_project_api = ProjectManagementApi()
     set_login_status(exchange_project_api, token)
     res = exchange_project_api.projects_id_exchanges_get(
         id=id_, exchange_name=exchange['name'])
     exchange_id = ''
     for item in res.items:
         exchange_id = item.exchange_id
     # 申请对接
     contacts_api = ContactsApi()
     set_login_status(contacts_api, token)
     contacts = {
         "exchangeId": exchange_id,
         "projectId": id_,
         "sponsor": "venture"
     }
     contacts_api.contacts_post(contacts)
     # 获取交易所对接的项目列表
     exchange_contacts_api = ExchangeContacts()
     set_login_status(exchange_contacts_api, token)
     res = exchange_contacts_api.contacts_projects_exchange_id_get(
         exchange_id=exchange_id, status="pending")
     contacts_id = ''
     for item in res.items:
         if item.full_name == full_name:
             contacts_id = item.id
     # 交易所处理对接邀请—拒绝
     contacts = {"contactId": contacts_id, "status": "rejected"}
     exchange_contacts_api.contacts_put(body=contacts)
     # 判断项目方与交易所是否已经申请对接
     res = exchange_contacts_api.contacts_check_get(project_id=id_,
                                                    exchange_id=exchange_id)
     assert res.result is False
コード例 #2
0
 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'