示例#1
0
    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)
示例#5
0
    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
示例#7
0
    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]
示例#10
0
 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)
示例#11
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()
     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
示例#12
0
    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, '企业未认证通过,不应该创建交易所'
示例#15
0
    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 == []
示例#16
0
    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), '交易所名称应当已经存在'
示例#17
0
    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
示例#19
0
    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
示例#20
0
    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
示例#21
0
 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'
示例#22
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'