コード例 #1
0
	def __init__(
		self, 
		data = None, 
		edges = None, 
		noise_flag = True, 
		white_list = [], 
		eps1_val = c.EPSILON_1, 
		cramer = 0.2):
		"""
		__init__
		Input:
			1. DataUtils.Data
		Procedure
			1. Convert the given data frame to dataframe in R
			2. Convert the given Domain(in python dict) to ListVector
			3. Instantial the attributes dependency.
		"""
		self.LOG = Base.get_logger("DepGraph")
		self.noise_flag = noise_flag
		self.eps1_val = eps1_val
		self.cramer = cramer
		self.data = data
		if data is None:
			self.edges = edges
		else:
			self.edges = self._run()

		self.white_list = white_list
コード例 #2
0
	def __init__(self, sensitive_data):
		""" Import the original data and initialize the utility measurement object

		Parameters
		----------
		sensitive_data: string
			The path to the original data. 
		"""
		self.LOG = Base.get_logger("UserQuery")
		sensitive = DataUtils(file_path = sensitive_data)
		self.sensitive_df = sensitive.get_pandas_df()
コード例 #3
0
def test_1037():
    """出租合同承租周期小于一年"""

    # describe: 出租合同承租周期小于一年,生成一条业绩单
    # data:1、房源已定价2、设计工程已交房;3、有装修成本;4、房源类型为合租;5、出租合同承租周期不大于1年;
    # result:生成一条业绩单,审核状态为待审核,核发月份为空

    fileName = 'apartmentAchievement_1037'
    randomApartment = "SELECT a.apartment_code,a.apartment_id,hc.contract_num,hc.contract_id FROM apartment a INNER JOIN house_contract hc " \
                      "ON hc.contract_id = a.house_contract_id AND hc.is_active = 'Y' AND hc.deleted = 0 AND hc.audit_status='APPROVED' AND hc.contract_status = 'EFFECTIVE' " \
                      "INNER JOIN fitment_house fh on fh.house_id=hc.house_id AND fh.fitment_status='HANDOVER' WHERE a.deleted = 0 " \
                      "AND a.rent_price > 0 AND a.city_code = 330100 AND hc.entrust_type = 'SHARE' AND a.rent_status='WAITING_RENT'" \
                      "AND hc.real_due_date>date_add(date(sysdate()), interval 1 YEAR) ORDER BY RAND() LIMIT 1"
    if sqlbase.get_count(randomApartment) == 0:
        consoleLog(u'%s:SQL查无数据!' % fileName, 'w')
        consoleLog(u'执行SQL:%s' % randomApartment)
        return
    info = sqlbase.serach(randomApartment)
    apartmentCode = info[0]
    apartmentId = info[1]
    consoleLog(u'%s:使用房源 %s 签约出租合同' % (fileName,apartmentCode))
    dateInfo = sqlbase.serach(
        "SELECT entrust_start_date,entrust_end_date,date(sysdate()),date_add(date(sysdate()), interval 1 DAY),date_add(date(sysdate()), interval 6 month) "
        "from house_contract where contract_num = '%s'" % info[2])  # 获取时间元素

    with Base() as base:
        # 创建出租合同
        customer = createCustomer()
        apartmentContractInfo = createApartmentContract(apartement_id=apartmentId, customerInfo=customer,
                                                        rent_price=5500, sign_date=dateInfo[2],
                                                        rent_start_date=dateInfo[3], rent_end_date=dateInfo[4],
                                                        deposit=2000, payment_cycle='TOW_MONTH')
        apartmentContractNum = apartmentContractInfo['contractNum']
        # 出租合同检查
        contractAdd = "select * from apartment a,apartment_contract ac ,apartment_contract_relation acr where a.apartment_id=acr.apartment_id and acr.contract_id=ac.contract_id " \
                      "and a.apartment_code='%s'AND ac.contract_num = '%s'AND ac.audit_status='AUDIT' and ac.contract_type = 'NEWSIGN' AND ac.entrust_type='SHARE' " \
                      "AND ac.is_active='Y' " % (apartmentCode, apartmentContractNum)
        base.diffAssert(lambda test: asserts(sqlbase.waitData(contractAdd,1)).is_true(),1037,
                        u'%s:出租合同 %s 新增失败,执行SQL:%s' % (fileName, apartmentContractNum, contractAdd))
        # 业绩检查
        achievementsqla = "select aca.is_active,aca.audit_status,aca.accounting_time from apartment_contract_achievement aca inner join apartment a on a.apartment_code=aca.house_code " \
                          "where contract_num='%s' and a.apartment_code='%s'and aca.deleted=0 " % (apartmentContractNum, apartmentCode)
        if sqlbase.waitData(achievementsqla, 1):
            achievementinfo = sqlbase.serach(achievementsqla)
            base.diffAssert(lambda test:asserts(achievementinfo[0]).is_equal_to('N'), 1037,
                            u'%s:合同 %s 对应业绩生效状态异常,期望值 N 实际值 %s' % (fileName, apartmentContractNum, achievementinfo[0]))
            base.diffAssert(lambda test: asserts(achievementinfo[1]).is_equal_to('AUDIT'), 1037,
                            u'%s:合同 %s 对应业绩审核状态异常, 期望值 AUDIT 实际值 %s' % (fileName, apartmentContractNum, achievementinfo[1]))
            base.diffAssert(lambda test: asserts(achievementinfo[2]).is_equal_to('None'), 1037,
                            u'%s:合同 %s 对应业绩审核发月份异常, 期望值 None 实际值 %s' % (fileName, apartmentContractNum, achievementinfo[2]))
        else:
            consoleLog( u'%s:合同 %s 对应业绩生成异常' % (fileName, apartmentContractNum),'e')
            consoleLog(u'执行SQL:%s' % achievementsqla)
コード例 #4
0
class TestHouTai():
    @pytest.fixture(scope="function")
    def open_houtai(self,driver):
        '''每次用例回到后台一级界面首页'''
        self.hou = Base(driver)
        driver.get(url_hou)


    @pytest.mark.aboutzentao
    @pytest.mark.parametrize("loc_about_x,text",test_about_data)
    def test_aboutzentao(self,driver,open_houtai,loc_about_x,text):
        '''关于禅道-升级专业版本'''
        t1 = self.hou.get_text(loc_about_x)
        assert t1 == text

    @pytest.mark.helpwe
    @pytest.mark.parametrize("loc_helpwe_x,text",test_helpwe_data)
    def test_helpwe(self,driver,open_houtai,loc_helpwe_x,text):
        '''帮助我们-用例'''
        t1 = self.hou.get_text(loc_helpwe_x)
        assert t1 == text
コード例 #5
0
ファイル: xxadd_bug1.py プロジェクト: lpy586/yuyu
class ZenTaoBug():
    #定位登录
    loc1 = ("id", "account")
    loc2 = ("name", "password")
    loc3 = ("id", "submit")

    #添加bug
    loc_test = ("link text" "测试")
    loc_bug = ("link text", "Bug")
    loc_addbug = ("xpath", ".//*[@id='createActionMenu']/a")
    loc_truck = ("xpath", ".// *[ @ id = 'openedBuild_chosen'] / ul")
    loc_truck_add = ("xpath",
                     ".// *[ @ id = 'openedBuild_chosen'] / div / ul / li")
    loc_input_title = ("id", "title")
    loc_avse = ("css select", "#submit")

    #需要先切换frame
    loc_input_body = ("class name", ".article-content")

    def __init__(self):
        self.driver = driver
        self.zentao = Base(self.driver)

    def login(self, user="******", psw="123456"):
        self.zentao.sendkeys(self.loca1, user)
        self.zentao.sendkeys(self.loca2, psw)
        self.zentao.click(self.loca3)
コード例 #6
0
 def __call__(self, conns):
     self.base = Base()
     self.financial_data = conns['financial_data']
     '''存款利率'''
     deposit_rate = ts.get_deposit_rate()
     self.base.batchwri(deposit_rate, 'deposit_rate', self.financial_data)
     '''贷款利率'''
     loan_rate = ts.get_loan_rate()
     self.base.batchwri(loan_rate, 'loan_rate', self.financial_data)
     '''存款准备金率'''
     rrr = ts.get_rrr()
     self.base.batchwri(rrr, 'RatioOfDeposit', self.financial_data)
     '''货币供应量'''
     money_supply = ts.get_money_supply()
     self.base.batchwri(money_supply, 'money_supply', self.financial_data)
     '''货币供应量(年底余额)'''
     money_supply_bal = ts.get_money_supply_bal()
     self.base.batchwri(money_supply_bal, 'money_supply_bal',
                        self.financial_data)
     '''国内生产总值(年度)'''
     gdp_year = ts.get_gdp_year()
     self.base.batchwri(gdp_year, 'gdp_year', self.financial_data)
     '''国内生产总值(季度)'''
     gdp_quarter = ts.get_gdp_quarter()
     self.base.batchwri(gdp_quarter, 'gdp_quarter', self.financial_data)
     '''三大需求对GDP贡献'''
     gdp_for = ts.get_gdp_for()
     self.base.batchwri(gdp_for, 'gdp_for', self.financial_data)
     '''三大产业对GDP拉动'''
     gdp_pull = ts.get_gdp_pull()
     self.base.batchwri(gdp_pull, 'gdp_pull', self.financial_data)
     '''三大产业贡献率'''
     gdp_contrib = ts.get_gdp_contrib()
     self.base.batchwri(gdp_contrib, 'gdp_contrib', self.financial_data)
     '''居民消费价格指数'''
     cpi = ts.get_cpi()
     self.base.batchwri(cpi, 'cpi', self.financial_data)
     '''工业品出场价格指数'''
     ppi = ts.get_ppi()
     self.base.batchwri(ppi, 'ppi', self.financial_data)
コード例 #7
0
    def setUp(self):
        self.selected_attrs = dict({
            'Age': 'C',
            'workclass': 'D',
            'fnlwgt': 'C',
            'education': 'D',
            'education_num': 'D',
            'marital_status': 'D',
            'occupation': 'D',
            'relationship': 'D',
            'race': 'D',
            'sex': 'D',
            'capital_gain': 'C',
            'capital_loss': 'C',
            'hours_per_week': 'C',
            'native_country': 'D',
            'salary_class': 'D'
        })
        self.data = DataUtils(file_path=TESTING_FILE,
                              selected_attrs=self.selected_attrs)
        self.data.data_coarsilize()

        self.base = Base()
コード例 #8
0
 def get(self, address, params=''):
     # 访问路径
     path = self.url + address
     # 请求参数
     loginData = {
         "token": self.token,
         "userId": self.userId,
         "timestamp": self.timestamp
     }
     loginData.update(params)
     # 参数按键盘排序,排序后MD5加密
     sign = Base().md5(Base().sort(loginData))
     # 加上sign
     loginData["sign"] = sign
     # 请求接口
     self.r = requests.get(url=path, params=loginData, headers=self.Cookie)
     if self.r.json()["resultCode"] == 200:
         print("【请求成功】:你很棒 \n【接口地址】:%s \n【请求结果】:%s" %
               (address, self.r.json()))
     else:
         print("【请求异常】:请检查 \n【接口地址】:%s \n【报错信息】:%s" %
               (address, self.r.text))
         return False
コード例 #9
0
    def __init__(self):
        Base.__init__(self)

        # CORS headers added here.
        self.ui_headers = [
            ("Access-Control-Allow-Origin", "*"),
            ("Access-Control-Allow-Headers", "Content-Type"),
            ("Access-Control-Allow-Methods", "GET, POST, OPTIONS"),
            ("Content-Type", "text/plain"),
        ]

        self.json_response = """
        {
             "messages": [
                 ${MESSAGES_ARRAY}
             ]
        }\
       """

        self.rsp_msg = """
        {
              "type": "${TYPE}",
              "${FORMAT}": "${OUTPUT_MESSAGE}"
        }\
       """

        self.json_response_template = Template(self.json_response)
        self.rsp_msg_template = Template(self.rsp_msg)

        # Pattern's of the three types of queries which the end user can enter
        # on the lessenger UI.

        self.location_pattern_strings = [
            r"\s*what\'s\s+the\s+weather\s+in\s+([a-zA-Z0-9 ]*.*)\s*",
            r"\s*weather\s+in\s+([a-zA-Z0-9 ]*.*)\s*",
            r"\s*([a-zA-Z0-9 ]*.*)weather\s*"
        ]
コード例 #10
0
def test_modify_address(driver_init):
    """测试修改收货地址的正确性"""
    add = Add_address(driver_init)
    # 点击收货管理
    add.click_address()
    # 点击选择修改的收货地址
    add.click_modify_address()
    # 输入修改的收货人姓名
    newconsignee = "李四"
    add.input_newconsignee(newconsignee)
    # 输入修改的电话号码
    newmobile = "13312341234"
    add.input_newmobile(newmobile)
    # 输入修改的邮箱
    newemail = "*****@*****.**"
    add.input_newemail(newemail)
    # 输入修改的邮政编码
    newpostal = "614000"
    add.input_newpostal(newpostal)
    # 点击所在地区
    add.click_newregion()
    # 点击修改的国家
    add.click_newcountry()
    # 点击修改的省
    base = Base(driver_init)
    base.swipe_up()
    add.click_newprovince()
    # 点击修改的市
    add.click_newcity()
    # 点击修改的区
    add.click_newarea()
    # 输入修改的详细地址
    newdetailed_address = "上城"
    add.input_newdetailed_address(newdetailed_address)
    # 点击添加保存按钮
    add.click_preservation()
    assert True
コード例 #11
0
def test_1038():
    """承租周期大于一年且小于18个月生成一条业绩"""

    # describe: 出租合同承租周期小于一年,生成一条业绩单
    # data:1、房源类型为服务整租;2、出租合同承租周期为16个月;3、承租到期日等于委托延长期到期日;
    # result:生成一条业绩单,审核状态为待审核,核发月份为空

    fileName = 'apartmentAchievement_1038'

    with Base() as base:
        # 创建房源,委托合同
        dateSql = "select date(sysdate()),date_add(date(sysdate()),INTERVAL 1 day),date_add(date(sysdate()),interval 13 month),date_add(date(sysdate()),interval 16 month)," \
                  "date_add(date(sysdate()),INTERVAL 1 month) from dual"
        dateInfo = sqlbase.serach(dateSql)
        apartmentId = addHouseContractAndFitment(apartment_type='MANAGE', entrust_type='ENTIRE', sign_date=dateInfo[0],
                                                 owner_sign_date=dateInfo[0], entrust_start_date=dateInfo[0],
                                                 entrust_end_date=dateInfo[2], delay_date=dateInfo[3],
                                                 free_start_date=dateInfo[0], free_end_date=dateInfo[4],
                                                 first_pay_date=dateInfo[0], second_pay_date=dateInfo[4],
                                                 rent=1234, parking=123, year_service_fee=321, payment_cycle='MONTH',
                                                 fitment_start_date=dateInfo[0], fitment_end_date=dateInfo[4], rooms=3,
                                                 fitmentCost=88888)
        # 创建租客,出租合同
        customer = createCustomer()
        apartmentContractInfo = createApartmentContract(apartement_id=apartmentId, customerInfo=customer,
                                                        rent_price=5500, sign_date=dateInfo[0],
                                                        rent_start_date=dateInfo[1], rent_end_date=dateInfo[3],
                                                        deposit=2000, payment_cycle='MONTH')
        apartmentContractNum = apartmentContractInfo['contractNum']
        # 出租合同检查
        contractAdd = "select * from apartment a,apartment_contract ac ,apartment_contract_relation acr where a.apartment_id=acr.apartment_id and acr.contract_id=ac.contract_id " \
                      "and a.apartment_id='%s'AND ac.contract_num = '%s'AND ac.audit_status='AUDIT' and ac.contract_type = 'NEWSIGN' AND ac.entrust_type='ENTIRE' " \
                      "AND ac.is_active='Y' " % (apartmentId, apartmentContractNum)
        base.diffAssert(lambda test: asserts(sqlbase.waitData(contractAdd, 1)).is_true(), 1038,
                        u'%s:出租合同 %s 新增失败,执行SQL:%s' % (fileName, apartmentContractNum, contractAdd))
        # 业绩检查
        achievementsqla = "select FLOOR(ABS(DATEDIFF(aca.start_time,aca.end_time)/30)),aca.audit_status,aca.is_active from apartment_contract_achievement aca inner join apartment a " \
                          "on a.apartment_code=aca.house_code and a.apartment_id='%s' where aca.contract_num='%s' and aca.deleted=0" % (apartmentId, apartmentContractNum)
        if sqlbase.waitData(achievementsqla, 1):
            achievementinfo = sqlbase.serach(achievementsqla)
            base.diffAssert(lambda test: asserts(achievementinfo[0]).is_equal_to(16), 1038,
                            u'%s:合同 %s 对应业绩周期异常,期望值 16 实际值 %s' % (fileName, apartmentContractNum, achievementinfo[0]))
            base.diffAssert(lambda test: asserts(achievementinfo[1]).is_equal_to('AUDIT'), 1038,
                            u'%s:合同 %s 对应业绩审核状态异常, 期望值 AUDIT 实际值 %s' % (fileName, apartmentContractNum, achievementinfo[1]))
            base.diffAssert(lambda test: asserts(achievementinfo[2]).is_equal_to('N'), 1038,
                            u'%s:合同 %s 对应业绩生效状态异常, 期望值 N 实际值 %s' % (fileName, apartmentContractNum, achievementinfo[2]))
        else:
            consoleLog(u'%s:合同 %s 对应业绩生成异常' % (fileName, apartmentContractNum),'e')
            consoleLog(u'执行SQL:%s'% achievementsqla)
コード例 #12
0
def test_1071():
    """检测出租合同续签需要合同应收全部已审"""
    sql = "SELECT act.contract_num from apartment_contract act INNER JOIN apartment_contract_receivable acr on act.contract_id = acr.contract_id where act.deleted = 0 " \
                  "and acr.deleted = 0 and act.entrust_type = 'SHARE' and act.city_code = '330100' and acr.end_status = 'NOTGET' order by rand() limit 1"
    contractNum = sqlbase.serach(sql)[0]
    with Base() as base:
        base.open(page.apartmentContractPage,apartmentContractPage.searchContractMould['contract_num_loc'])
        base.input_text(apartmentContractPage.searchContractMould['contract_num_loc'],contractNum)
        base.click(apartmentContractPage.searchContractMould['search_button_loc'])
        base.staleness_of(apartmentContractPage.searchContractMould['tr_contract'])
        base.click(apartmentContractPage.searchContractMould['resign_loc'])
        try:
            base.wait_element(apartmentContractPage.alertInfo)
        except TimeoutException:
            base.diffAssert(lambda t:asserts('a').ends_with('b'), 1071, u'出租合同未全部收款审核的情况下,续签没有弹出提示')
コード例 #13
0
ファイル: approve_page.py プロジェクト: anny2020/ff_autotest
 def __init__(self, driver):
     self.driver = driver
     self.base = Base(driver)
     #定位用户名元素的参数
     self.loc_user = ("id", "txtUserName")
     #定位密码元素的参数
     self.loc_pwd = ("id", "txtPassWord")
     #定位登录按钮元素的参数
     self.button = ("id", "btnSubmit")
     #首页导航菜单中的“涉访管理”按钮元素
     self.loc_sfgl = ("css selector", ".nav-feifang-n>a>cite>p")
     #涉访审批管理菜单元素
     self.loc_spgl = ("link text", "涉访审批管理")
     #“列管待审批”菜单元素
     self.loc_lgdsp = ("link text", "列管待审批")
     #定位待审批的表格 未用到
     self.loc_table = ("css selector", "#fsDatagrid")
     #定位表格内容td  未用到
     self.loc_table_td = ("tag name", "td")
     #定位审批按钮
     # 只能用JS来定位到“审批按钮”
     self.appr_butn = '''document.getElementsByTagName('iframe')[2].contentWindow.document.body.
     getElementsByClassName('layui-table-body')[1].getElementsByClassName('layui-btn')[0].click()'''
     #-----------------审批弹窗页--------------------
     #审批结果:选择同意或不同意,index为1是同意,为0是不同意
     self.appr_result = '''document.getElementsByTagName('iframe')[3].contentWindow.document.body.
     getElementsByTagName('fieldset')[1].getElementsByClassName('layui-anim')[1].click()'''
     #审批意见框
     self.appr_idea = '''document.getElementsByTagName('iframe')[3].contentWindow.document.
     body.getElementsByTagName('fieldset')[1].getElementsByClassName('layui-textarea')[0].value=("可以")'''
     #提交审批按钮
     self.appr_submit = '''document.getElementsByTagName('iframe')[3].contentWindow.document.
     getElementById("spButton").click()'''
     #审批“操作成功”提示
     self.submit_tips = ("css selector",
                         ".layui-layer-content.layui-layer-padding")
コード例 #14
0
	def __init__(
		self, 
		file_path = None, 
		selected_attrs = None, 
		pandas_df = None, 
		valbin_maps = None, 
		names=None, 
		specified_c_domain = None,
		chunk_size = -1,
		date_format = None
		):
		""" Loading data to warpped python object

		Parameters
		----------
			file_path: string
				The path of original data
			selected_attrs: dict
				{
					"A":"C",
					"B":"D",
					...
				}
			pandas_df: Pandas dataframe
				Initialize with a pandas dataframe(TODO: deprecated)
			valbin_maps: dict
				A mapping of original values with coarse value
			names: list, experiment
				A list to specifiy the attributes' names when the input file has no header
			specified_c_domain: dict, experiment
				A mapping of continuous type attributes with the specified edges in coarse
		"""
		self.LOG = Base.get_logger("DataUtils")
		self.valbin_maps = dict() if valbin_maps is None else valbin_maps
		self.chunk_size = chunk_size
		if chunk_size > 0:
			self.dataframe = self._loading_chunk(file_path, pandas_df, names)
		else:
			self.dataframe = self._loading(file_path, pandas_df, names)

		if selected_attrs is not None:
			self.selected_attrs = selected_attrs
			# the 'selected_attrs' is ordered
			self.dataframe = self.dataframe[selected_attrs.keys()]

		self.preview_count = 5
		self.specified_c_domain = specified_c_domain
		self.date_format = date_format
コード例 #15
0
 def test_a(self):
     """ 用例说明:1111 """
     self.driver.get("https://www.baidu.com")
     baidu = Base(self.driver)
     loc1 = ("id", "kw")
     loc2 = ("id", "su")
     baidu.sendKeys(loc1, "python")
     time.sleep(2)
     baidu.click(loc2)
     time.sleep(2)
コード例 #16
0
def test_guge():
    driver = webdriver.Chrome()
    web = Base(driver)  # 实例化
    driver.get("https://www.baidu.com")
    loc_1 = ("id", "kw")
    web.send(loc_1, "hello")
    loc_2 = ("id", "su")
    web.click(loc_2)

    # Python is likely shutting down
    '''driver.close()'''
コード例 #17
0
    def __init__(self,
                 file_path=None,
                 selected_attrs=None,
                 pandas_df=None,
                 valbin_maps=None,
                 names=None,
                 specified_c_domain=None,
                 chunk_size=-1,
                 date_format=None):
        """ Loading data to warpped python object

		Parameters
		----------
			file_path: string
				The path of original data
			selected_attrs: dict
				{
					"A":"C",
					"B":"D",
					...
				}
			pandas_df: Pandas dataframe
				Initialize with a pandas dataframe(TODO: deprecated)
			valbin_maps: dict
				A mapping of original values with coarse value
			names: list, experiment
				A list to specifiy the attributes' names when the input file has no header
			specified_c_domain: dict, experiment
				A mapping of continuous type attributes with the specified edges in coarse
		"""
        self.LOG = Base.get_logger("DataUtils")
        self.valbin_maps = dict() if valbin_maps is None else valbin_maps
        self.chunk_size = chunk_size
        if chunk_size > 0:
            self.dataframe = self._loading_chunk(file_path, pandas_df, names)
        else:
            self.dataframe = self._loading(file_path, pandas_df, names)

        if selected_attrs is not None:
            self.selected_attrs = selected_attrs
            # the 'selected_attrs' is ordered
            self.dataframe = self.dataframe[selected_attrs.keys()]

        self.preview_count = 5
        self.specified_c_domain = specified_c_domain
        self.date_format = date_format
コード例 #18
0
class GeGuHangQing(object):
    def __init__(self):
        super(GeGuHangQing,self).__init__()
        self.close_res = []

    def __call__(self, conns, retry_num=3):
        '''
        抓取股票每日行情数据
        :param conns: 数据库连接
        :param retry_num: 重新获取数据的次数
        :return: 数据存储在数据库
        '''
        global hangqing
        self.base = Base()
        self.finacial_data = conns['financial_data']

        # self.finacial_data.dopost('TRUNCATE TABLE stock_hangqing_date')
        # self.finacial_data.dopost('TRUNCATE TABLE stock_code_name')

        #在股市收盘后,获取股票当日行情
        #出现"urllib.error.HTTPError: HTTP Error 456"的问题
        for i in range(retry_num+1):
            try:
                hangqing = ts.get_today_all()
                break
            except Exception as e:
                logger.warning('Retry get today stock data , the [%d] times, err %s' % (i, e.message))
                if i == retry_num:
                    logger.warning(traceback.format_exc())
                    raise e
                time.sleep(300)
        today = self.base.gettoday()
        hangqing['date'] = today.replace('/','-')
        #股市收盘后,trade现价就是股票的收盘价。
        hangqing.rename(columns={'trade': 'close'}, inplace=True)
        #去重
        hangqing_qc = hangqing.drop_duplicates().sort_values(by='code').reset_index(drop=True)
        # print(hangqing_qc)
        self.base.batchwri(hangqing_qc, 'stock_hangqing_date',self.finacial_data)
        self.base.batchwri(hangqing_qc[['code','name']], 'stock_code_name', self.finacial_data)

        #股票代码-名称对照表去重
        duizhao = self.finacial_data.getdata('stock_code_name')
        print(duizhao.size)
        duizhao_qc = duizhao.drop_duplicates().sort_values(by='code').reset_index(drop=True)
        # print(df)
        self.finacial_data.dopost('TRUNCATE TABLE stock_code_name')
        self.base.batchwri(duizhao_qc, 'stock_code_name', self.finacial_data)
コード例 #19
0
def test_1012():
    """出租合同已有实收"""

    # describe:出租合同有实收不能删除
    # data:出租合同已有实收
    # result:删除失败

    fileName = 'apartmentContract_1012'
    contractSql = "select ac.contract_num from apartment_contract ac inner join apartment_contract_receipts acr on ac.contract_id=acr.contract_id " \
                  "where ac.deleted=0 and ac.is_active='Y'  and ac.city_code=330100 and ac.entrust_type='SHARE' ORDER BY RAND() LIMIT 1"
    if sqlbase.get_count(contractSql) == 0:
        consoleLog(u'%s:SQL查无数据!' % fileName, 'w')
        consoleLog(u'执行SQL:%s' % contractSql)
        return
    info = sqlbase.serach(contractSql)
    contractNum = info[0]
    consoleLog(u'%s:取随机实收出租合同 %s 做合同删除' % (fileName, contractNum))

    with Base() as base:
        base.open(page.apartmentContractPage,
                  apartmentContractPage.searchContractMould['tr_contract'])
        base.input_text(
            apartmentContractPage.searchContractMould['contract_num_loc'],
            contractNum)  # 输入合同编号
        base.click(
            apartmentContractPage.searchContractMould['search_button_loc'])
        base.staleness_of(
            apartmentContractPage.searchContractMould['tr_contract'])
        base.context_click(
            apartmentContractPage.searchContractMould['tr_contract'])
        base.click(
            apartmentContractPage.searchContractMould['delete_loc'])  # 删除
        base.click(apartmentContractPage.
                   addApartmentContractMould['delete_button_confirm'])
        base.wait_element(
            apartmentContractPage.searchContractMould['message_loc'])  # 等待提示出现
        time.sleep(1)
        message = base.script(
            "var a = $('.panel.window.messager-window>div:nth-child(2)>div:nth-child(2)').text();return a",
            True)  # 获取提示信息
        messagehope = u'请财务先重置并删除收款信息'
        base.diffAssert(
            lambda test: asserts(message).is_equal_to(messagehope), 1012,
            u'%s:出租合同 %s 删除异常,期望值 %s 实际值 %s' %
            (fileName, contractNum, messagehope, message))
コード例 #20
0
ファイル: loginpage.py プロジェクト: gubaoli/candao
class LoginPage():
    def __init__(self, driver):  #初始化
        self.driver = driver
        self.b = Base(self.driver)

    def login(self, uesr="admin", psw="123456"):
        self.driver.get("http://127.0.0.1/zentao/user-login.html")
        time.sleep(3)
        self.b.send("xpath", ".//*[@id='account']", "admin")
        self.b.send("css selector", "[name='password']", "123456")
        self.b.click("css selector", "#submit")

    def get_login_reslut(self):  #断言
        #time.sleep(3)
        #try:
        #t = self.b.get_text("css selector", "#userMenu>a")
        #return t
        #except:
        #return ""
        self.b.get_text("css selector", "#userMenu>a", timeout=5)
コード例 #21
0
def test_1031():
    """有有效出租合同的委托合同删除"""

    # describe:有有效出租合同的委托合同不能删除
    # data:1、委托合同状态为有效;2、委托合同下有至少一个有效状态的出租合同;
    # result:删除失败,提示有关联的出租合同不能删除

    fileName = 'houseContract_1031'
    contractSql = "select hc.contract_num ,h.house_code from house_contract hc inner join house h on h.house_id=hc.house_id where  EXISTS (select * from apartment_contract ac " \
                  "where hc.house_id=ac.house_id and ac.is_active='Y' and ac.deleted=0 )and hc.is_active='Y' and hc.deleted=0 and hc.city_code=330100  order by rand() limit 1"
    if sqlbase.get_count(contractSql) == 0:
        consoleLog(u'%s:SQL查无数据!' % fileName, 'w')
        consoleLog(u'执行SQL:%s' % contractSql)
        return
    contractInfo = sqlbase.serach(contractSql)
    contractNum = contractInfo[0]
    consoleLog(u'%s:取委托合同 %s 做删除' % (fileName, contractNum))

    with Base() as base:
        base.open(page.entrustContractPage,
                  houseContractPage.contractSearchMould['tr_contract'])
        base.input_text(
            houseContractPage.contractSearchMould['residential_name_loc'],
            contractInfo[1])
        base.input_text(
            houseContractPage.contractSearchMould['contract_num_loc'],
            contractNum)
        base.click(houseContractPage.contractSearchMould['search_button_loc'])
        base.staleness_of(houseContractPage.contractSearchMould['tr_contract'])
        base.click(houseContractPage.addHouseContractMould['delete_button'])
        base.click(
            houseContractPage.addHouseContractMould['delete_button_confirm'])
        base.wait_element(
            houseContractPage.addHouseContractMould['message_loc'])  # 等待提示出现
        time.sleep(1)
        message = base.script(
            "var a = $('.panel.window.messager-window>div:nth-child(2)>div:nth-child(2)').text();return a",
            True)  # 获取提示信息
        messagehope = u'有关联的出租合同不能删除.'
        base.diffAssert(
            lambda test: asserts(message).is_equal_to(messagehope), 1031,
            u'%s:合同 %s 删除异常,期望信息"%s"实际信息"%s"' %
            (fileName, contractNum, messagehope, message))
コード例 #22
0
def test_1036():
    """到期委托合同正常删除"""

    # describe:到期委托合同可以正常删除成功
    # data:1、委托合同状态为到期;2.名下无出租合同
    # result:委托合同删除成功;

    fileName = 'houseContract_1036'
    dateSql = "select date_sub(date(sysdate()),INTERVAL 24 month),date_add(date(sysdate()),INTERVAL 1 day),date_sub(date(sysdate()),interval 5 month)," \
              "date_sub(date(sysdate()),interval 2 month),date_sub(date(sysdate()),INTERVAL 23 month) from dual"  # 时间元素
    dateInfo = sqlbase.serach(dateSql)
    houseSql = sqlbase.serach(
        "select house_id,residential_id,building_id,house_code from house where deleted=0 and city_code=330100 order by rand() limit 1")
    houseInfo = {'houseID': houseSql[0], 'residentialID': houseSql[1], 'buildingID': houseSql[2],'houseCode': houseSql[3]}  # 开发房源信息

    with Base() as base:
        #创建到期委托合同
        apartmentId = addHouseContractAndFitment(apartment_type='BRAND', entrust_type='ENTIRE', sign_date=dateInfo[0],
                                                 owner_sign_date=dateInfo[0], entrust_start_date=dateInfo[0],
                                                 entrust_end_date=dateInfo[2], delay_date=dateInfo[3],
                                                 free_start_date=dateInfo[0], free_end_date=dateInfo[4],
                                                 first_pay_date=dateInfo[0], second_pay_date=dateInfo[4],
                                                 rent=1234, parking=123, year_service_fee=321, payment_cycle='MONTH',
                                                 fitment_start_date=dateInfo[0], fitment_end_date=dateInfo[4], rooms=3,
                                                 fitmentCost=88888, houseInfo=houseInfo)
        contractSql = "select hc.contract_num,a.apartment_code from house_contract hc INNER JOIN apartment a on a.house_contract_id=hc.contract_id and a.apartment_id='%s'" % apartmentId
        contractInfo = sqlbase.serach(contractSql)
        contractNum = contractInfo[0]
        contractStatusSql = "select * from house_contract where contract_num='%s' and contract_status='EXPIRE'" % contractNum
        base.diffAssert(lambda test: asserts(sqlbase.waitData(contractStatusSql,1)).is_true(),1036,
                        u'%s:已到期合同 %s 生成异常,执行SQL:%s"' % (fileName, contractNum, contractStatusSql))
        base.open(page.entrustContractPage, houseContractPage.contractSearchMould['tr_contract'])
        base.input_text(houseContractPage.contractSearchMould['residential_name_loc'], contractInfo[1])
        base.input_text(houseContractPage.contractSearchMould['contract_num_loc'], contractNum)
        base.click(houseContractPage.contractSearchMould['search_button_loc'])
        base.staleness_of(houseContractPage.contractSearchMould['tr_contract'])
        base.click(houseContractPage.addHouseContractMould['delete_button'])
        base.click(houseContractPage.addHouseContractMould['delete_button_confirm'])
        base.check_submit()
        # 合同状态检查
        contractSqlb = "select * from house_contract where deleted=1 and contract_num='%s'" % contractNum
        base.diffAssert(lambda test: asserts(sqlbase.get_count(contractSqlb)).is_equal_to(1),1036,
                        u'%s:已到期委托合同 %s 删除异常,执行SQL:%s"' % (fileName, contractNum, contractSqlb))
コード例 #23
0
 def err_data_clear(exe_data, trans_no=True):
     """特殊清理方法"""
     if trans_no is True:
         trans_no = Base.get_trans_no(exe_data)
     else:
         trans_no = trans_no
     table_name = [
         Constants.TableName.HIS_ACCNT_PREPAY,
         Constants.TableName.HIS_ACCNT_ONWAY,
         Constants.TableName.HIS_ACCNT_PROFILE,
         Constants.TableName.HIS_ACCNT_MCH_SUB
     ]
     oder_id = [
         'test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test10'
     ]
     for table_name in table_name:
         SqlSave.delete_amt_info(table_name=table_name, trans_no=trans_no)
     for id in oder_id:
         SqlSave.delete_mch_accnt_balance_record(oder_id=id)
コード例 #24
0
def test_1035():
    """已终止的合同不能删除"""

    # describe:已终止的合同不能删除
    # data:1、合同状态为公司违约或者业主违约或者正退;2.名下无出租合同
    # result:删除失败,委托合同为终止状态不能删除

    fileName = 'houseContract_1035'
    contractSql = "select hc.contract_num ,h.house_code from house_contract hc inner join house h on h.house_id=hc.house_id where hc.contract_status='OWNER_DEFAULT' " \
                  "and hc.deleted=0 and hc.city_code=330100 and not EXISTS (select * from apartment_contract ac where hc.house_id=ac.house_id)order by rand() limit 1"
    if sqlbase.get_count(contractSql) == 0:
        consoleLog(u'%s:SQL查无数据!' % fileName, 'w')
        consoleLog(u'执行SQL:%s' % contractSql)
        return
    contractInfo = sqlbase.serach(contractSql)
    contractNum = contractInfo[0]
    consoleLog(u'%s:取已终止委托合同 %s 做删除' % (fileName, contractNum))

    with Base() as base:
        base.open(page.entrustContractPage,
                  houseContractPage.contractSearchMould['tr_contract'])
        base.input_text(
            houseContractPage.contractSearchMould['residential_name_loc'],
            contractInfo[1])
        base.input_text(
            houseContractPage.contractSearchMould['contract_num_loc'],
            contractNum)
        base.click(houseContractPage.contractSearchMould['search_button_loc'])
        base.staleness_of(houseContractPage.contractSearchMould['tr_contract'])
        base.click(houseContractPage.addHouseContractMould['delete_button'])
        base.click(
            houseContractPage.addHouseContractMould['delete_button_confirm'])
        base.wait_element(
            houseContractPage.addHouseContractMould['message_loc'])  # 等待提示出现
        time.sleep(1)
        message = base.script(
            "var a = $('.panel.window.messager-window>div:nth-child(2)>div:nth-child(2)').text();return a",
            True)  # 获取提示信息
        messagehope = u'委托合同为终止状态不能删除.'
        base.diffAssert(
            lambda test: asserts(message).is_equal_to(messagehope), 1035,
            u'%s:已终止委托合同 %s 删除异常,期望信息"%s"实际信息"%s"' %
            (fileName, contractNum, messagehope, message))
コード例 #25
0
def test_1022():
    """合同终止结算已复审删除"""

    # describe:合同终止结算已复审不能删除
    # data:合同终止结算已复审
    # result:删除失败

    fileName = 'apartmentContract_1022'
    contractSql = "select ac.contract_num from apartment_contract_end ace inner join apartment_contract ac on ace.contract_id=ac.contract_id " \
                  "and ac.city_code=330100 where ace.deleted=0 and ace.audit_status='REVIEW'  order by rand() limit 1"
    if sqlbase.get_count(contractSql) == 0:
        consoleLog(u'%s:SQL查无数据!' % fileName, 'w')
        consoleLog(u'执行SQL:%s' % contractSql)
        return
    info = sqlbase.serach(contractSql)
    contractNum = info[0]
    consoleLog(u'%s:取随机终止结算合同 %s 做删除' % (fileName, contractNum))

    with Base() as base:
        base.open(page.contractEndPage,
                  apartmentContractEndPage.searchMould['tr_contract_end'])
        base.input_text(
            apartmentContractEndPage.searchMould['contract_num_loc'],
            contractNum)
        base.click(apartmentContractEndPage.searchMould['search_button_loc'])
        base.staleness_of(
            apartmentContractEndPage.searchMould['tr_contract_end'])
        base.click(
            apartmentContractEndPage.addContractEndMould['delete_button'])
        base.click(apartmentContractEndPage.
                   addContractEndMould['delete_button_confirm'])
        base.wait_element(
            apartmentContractPage.searchContractMould['message_loc'])  # 等待提示出现
        time.sleep(1)
        message = base.script(
            "var a = $('.panel.window.messager-window>div:nth-child(2)>div:nth-child(2)').text();return a",
            True)  # 获取提示信息
        messagehope = u'终止结算已审核,不可删除'
        base.diffAssert(
            lambda test: asserts(message).contains(messagehope), 1022,
            u'%s:出租合同 %s 终止结算删除异常,期望值 %s 实际值 %s' %
            (fileName, contractNum, messagehope, message))
コード例 #26
0
def test_1017():
    """已终止合同发起结算"""

    # describe:已终止合同不能重复发起结算
    # data:合同已终止
    # result:终止结算提交失败

    fileName = 'apartmentContract_1017'
    contractSql = "select contract_num from apartment_contract where contract_status in ('COLLECTHOUSE','CORPORATE_DEFAULT','OWNER_DEFAULT','RETREATING','FORRENT') " \
                  "and city_code=330100 and deleted=0 and entrust_type='SHARE' order by rand() limit 1"
    if sqlbase.get_count(contractSql) == 0:
        consoleLog(u'%s:SQL查无数据!' % fileName, 'w')
        consoleLog(u'执行SQL:%s' % contractSql)
        return
    info = sqlbase.serach(contractSql)
    contractNum = info[0]
    consoleLog(u'%s:取随机出租合同 %s 做终止' % (fileName, contractNum))

    with Base() as base:
        base.open(page.apartmentContractPage,
                  apartmentContractEndPage.addContractEndMould['tr_contract'])
        base.input_text(
            apartmentContractEndPage.addContractEndMould['contract_num_loc'],
            contractNum)  # 输入合同编
        base.click(apartmentContractEndPage.
                   addContractEndMould['search_button_loc'])  # 搜索
        base.staleness_of(apartmentContractEndPage.
                          addContractEndMould['tr_contract'])  # 等待列表刷新
        base.context_click(apartmentContractEndPage.
                           addContractEndMould['tr_contract'])  # 右击第一条数据
        base.click(
            apartmentContractEndPage.addContractEndMould['end_button_loc'],
            index=1)  # 终止结算
        time.sleep(1)
        message = base.script(
            "var a = $('.bootstrap-growl.alert.alert-info.alert-dismissible').text();return a",
            True)  # 获取提示信息
        messagehope = u'该合同已终止'
        base.diffAssert(
            lambda test: asserts(message).contains(messagehope), 1017,
            u'%s:出租合同 %s 终止结算异常,期望值 %s 实际值 %s' %
            (fileName, contractNum, messagehope, message))
コード例 #27
0
def test_1010():
    """出租合同已终止删除"""

    # describe:出租合同已终止不能删除
    # data:出租合同已终止结算
    # result:删除失败

    fileName = 'apartmentContract_1010'
    contractSql = "select contract_num from apartment_contract where contract_status in ('COLLECTHOUSE','CORPORATE_DEFAULT','OWNER_DEFAULT','RETREATING','FORRENT') " \
                  "and city_code=330100 and deleted=0 and entrust_type='SHARE' ORDER BY RAND() LIMIT 1"
    if sqlbase.get_count(contractSql) == 0:
        consoleLog(u'%s:SQL查无数据!' % fileName, 'w')
        consoleLog(u'执行SQL:%s' % contractSql)
        return
    info = sqlbase.serach(contractSql)
    contractNum = info[0]
    consoleLog(u'%s:取随机出租终止合同 %s 做合同删除' % (fileName, contractNum))

    with Base() as base:
        base.open(page.apartmentContractPage,
                  apartmentContractPage.searchContractMould['tr_contract'])
        base.input_text(
            apartmentContractPage.searchContractMould['contract_num_loc'],
            contractNum)  # 输入合同编号
        base.click(
            apartmentContractPage.searchContractMould['search_button_loc'])
        base.staleness_of(
            apartmentContractPage.searchContractMould['tr_contract'])
        base.context_click(
            apartmentContractPage.searchContractMould['tr_contract'])
        base.click(apartmentContractPage.searchContractMould['delete_loc'])
        base.wait_element(
            apartmentContractPage.searchContractMould['message_loc'])  # 等待提示出现
        time.sleep(1)
        message = base.script(
            "var a = $('.panel.window.messager-window>div:nth-child(2)>div:nth-child(2)').text();return a",
            True)  # 获取提示信息
        messagehope = u'出租合同已终止不能删除.'
        base.diffAssert(
            lambda test: asserts(message).is_equal_to(messagehope), 1010,
            u'%s:出租合同 %s 删除异常,期望值 %s 实际值 %s' %
            (fileName, contractNum, messagehope, message))
コード例 #28
0
def test_1034():
    """有效委托合同正常删除"""

    # describe:有效合同正常删除
    # data:1、委托合同状态为有效;2、委托合同下没有有效状态的出租合同;
    # result:委托合同删除成功;

    fileName = 'houseContract_1034'
    # contractSql = "select hc.contract_num,h.house_code from house_contract hc inner join house h on h.house_id=hc.house_id where not EXISTS (select * from apartment_contract ac " \
    #               "where hc.house_id=ac.house_id) and hc.is_active='Y' and hc.deleted=0 and hc.city_code=330100  order by rand() limit 1"
    contractSql = "select hc.contract_num,h.house_code from house_contract hc inner join house h on h.house_id=hc.house_id where not EXISTS (select * from house_contract_pay hcp " \
                  "where hc.contract_id=hcp.contract_id and hcp.deleted=0) and not EXISTS (select * from apartment_contract ac where hc.house_id=ac.house_id)and hc.is_active='Y' " \
                  "and hc.deleted=0 and hc.city_code=330100"
    if sqlbase.get_count(contractSql) == 0:
        consoleLog(u'%s:SQL查无数据!' % fileName, 'w')
        consoleLog(u'执行SQL:%s' % contractSql)
        return
    contractInfo = sqlbase.serach(contractSql)
    contractNum = contractInfo[0]
    consoleLog(u'%s:取委托合同 %s 做删除' % (fileName, contractNum))

    with Base() as base:
        base.open(page.entrustContractPage,
                  houseContractPage.contractSearchMould['tr_contract'])
        base.input_text(
            houseContractPage.contractSearchMould['residential_name_loc'],
            contractInfo[1])
        base.input_text(
            houseContractPage.contractSearchMould['contract_num_loc'],
            contractNum)
        base.click(houseContractPage.contractSearchMould['search_button_loc'])
        base.staleness_of(houseContractPage.contractSearchMould['tr_contract'])
        base.click(houseContractPage.addHouseContractMould['delete_button'])
        base.click(
            houseContractPage.addHouseContractMould['delete_button_confirm'])
        base.check_submit()
        # 合同状态检查
        contractSqlb = "select * from house_contract where deleted=1 and contract_num='%s'" % contractNum
        base.diffAssert(
            lambda test: asserts(sqlbase.waitData(contractSqlb, 1)).is_true(),
            1034, u'%s:委托合同 %s 删除异常,执行SQL:%s"' %
            (fileName, contractNum, contractSqlb))
コード例 #29
0
ファイル: test_login.py プロジェクト: songly1992/Auto_jiekou
 def test_002(self):
     url = r'http://127.0.0.1:8000/login'
     request_data = {
         "data": "eee",
         "username": "******",
         "mobile": "189978798"
     }
     response_data = {
         "code": "200",
         "data": "eee",
         "username": "******",
         "mobile": "189978798"
     }
     self.r = Base()
     # res = self.r.run_main(url, "GET", data)
     res = mock_demo1(self.r.run_main, request_data, url, 'GET',
                      response_data)
     # run= json.loads(res)#将json格式转换为字典
     print(res)
     self.assertEqual(res['data'], 'eee', "测试失败")
コード例 #30
0
 def machaccnt_pay_channel_rate_common(exc_data):
     """
     含有手续费的handle处理  exc_data 是给构造预期结果用 copy是给请求用
     回填 计算手续费后的金额
     """
     copy_exc_data = copy.deepcopy(exc_data)
     comparison_muc_sub_list = []
     for key, value in Constants.SubMerchant.MUCSUB.items():
         comparison_muc_sub_list.append(ConfigManager.get_service(value))
     data = copy_exc_data['data']
     if not isinstance(data, dict):
         data = json.loads(copy_exc_data['data'])
     trans_amt = data.get('biz_content').get('trans_amt')
     for i in data.get('biz_content').get('split_accnt_detail'):
         if i.get('mch_accnt_no') in comparison_muc_sub_list:
             new_amount = Base.count_charge(trans_amt, i.get('amount'))
             i['amount'] = new_amount
     copy_exc_data['data'] = HandleKeepingAccounts.public_handle(
         data, copy_exc_data)
     return copy_exc_data
コード例 #31
0
class Login(Base):

    def __init__(self, driver):
        self.base = Base(driver)

    @allure.story('登录操作')
    def login(self):

        # d = u2.connect('emulator-5554')
        # #d.app_install(
        #     #'https://imtt.dd.qq.com/16891/7E569C80A3714D58E77F6173EB8F6329.apk?fsname=com.netease.cloudmusic_5.7.2_130.apk&csr=1bbd')
        # d(resourceId='com.netease.cloudmusic:id/q6').wait(timeout=5)
        # d(resourceId='com.netease.cloudmusic:id/q6').click_exists(timeout=3)
        # d(resourceId='com.netease.cloudmusic:id/acb').click_exists(timeout=3)
        # d(resourceId="com.netease.cloudmusic:id/q1").click_exists(timeout=3)
        # d(resourceId="com.netease.cloudmusic:id/i9").set_text("13226349780")
        # d(resourceId="com.netease.cloudmusic:id/i7").set_text("*********")
        # d(resourceId='com.netease.cloudmusic:id/q1').click_exists(timeout=3)
        self.base.click(setting)
        self.base.click(login)
        self.base.click(login_phone)
        self.base.send_keys(phone_input, phone_input_c)
コード例 #32
0
class TestZenTaoLogin():

    driver = webdriver.Chrome()
    zen = Base(driver)
    url = "http://127.0.0.1:81/zentao/user-login.html"

    def setup(self):
        self.driver.get(self.url)

    def teardown(self):
        '''数据清理'''
        try:
            print("情况cookies,退出登录状态")
            self.driver.delete_all_cookies()
            self.driver.refresh()
        except:
            print("元素找不到")

    def teardown_class(self):
        '''用例执行完成后退出'''
        print("teardown_class:用例执行完成,关闭浏览器")
        self.driver.quit()

    def test_login_1(self):
        '''登录成功用例:账号->admin,密码->123456'''
        self.zen.sendKeys(loc1, 'admin')
        self.zen.sendKeys(loc2, '123456')
        self.zen.click(loc3)
        result = self.zen.get_text(login_user)
        print('登录结果,获取用户名:%s' % result)
        assert result == "admin"

    def test_login_2(self):
        '''登录失败用例:账号->admin111,密码->111'''

        self.zen.sendKeys(loc1, 'admin111')
        self.zen.sendKeys(loc2, '111')
        self.zen.click(loc3)
        result = self.zen.get_text(login_user)
        print('登录结果,获取用户名:%s' % result)
        assert result == ''
コード例 #33
0
class Login_Blog():
    '''登录类封装'''
    def __init__(self,driver):
        '''初始化driver参数'''
        self.driver = driver
        self.driver_n = Base(self.driver)


    def input_user(self,username):
        '''输入用户名'''

        username_locator = ("id","LoginName")
        self.driver_n.send_keys(username_locator,username)

        # WebDriverWait(self.driver,10).until(lambda x: x.find_element("id","LoginNamexx")).clear()
        # WebDriverWait(self.driver, 10).until(lambda x: x.find_element("id", "LoginNamexx")).send_keys(username)

    def input_psw(self,psw):
        '''输入密码'''

        password_locator = ("id","Password")
        self.driver_n.send_keys(password_locator,psw)


        # self.driver.find_element_by_id("Password").clear()
        # self.driver.find_element_by_id("Password").send_keys(psw)

    def click_button(self):
        '''点击登录按钮'''

        loginbutton_locator = ("id","submitBtn")
        self.driver_n.click(loginbutton_locator)

        # self.driver.find_element_by_id("submitBtn").click()


    def login(self,username,psw):
        '''登录公共方法'''

        try:
            self.input_user(username)
            self.input_psw(psw)
            self.click_button()
        except Exception as msg:
            print(u"异常原因%s"%msg)
            nowTime = time.strftime("%Y%m%d.%H.%M.%S")
            t = self.driver.get_screenshot_as_file(os.path.join(pic_path,'%s.jpg' % nowTime))
            print(u"截图结果:%s"%t)
コード例 #34
0
	def __init__(self, 
		data, 
		jtree_path, 
		domain, 
		cluster, 
		histogramdds, 
		epsilon = 0.0
	):
		"""
		Initialize the inference class.
		TODO: 1. refactor, the data_path, edges, nodes, domain 
				are temporary to be here.
		param
			data: the pandas dataframe
			TODO: Because the DPTable algorithm construct lots of attributes when reading data,
					to using memory cache, one should refector the inference step of DPTable.

		param
			domain: data information with format in dictionary

			{
				"A":[1,2,3,4,5],
				"B":[2,3,4,5,6]
			}
		param
			cluster: the merged cluster structure
		param
			epsilon: the privacy budget
		"""
		self.LOG = Base.get_logger("Inference")
		self.data = data
		self.data_size = data.get_count()
		self.epsilon = epsilon
		self.rdomain = self.convert2rdomain(domain)

		sorted_internal = lambda ls2: [sorted(ls) for ls in ls2]
		self.cluster = sorted_internal(cluster)
		self.jtree_path = jtree_path
		self.histogramdds = histogramdds
コード例 #35
0
	def __init__(self, domain, jtreepy, _lambda=0.2):
		"""
		Using linear programming method to find a less noise variance.
		param:
			domain: the domain of the given data
				(note) the order of columns in domain should be same with the original
			jtree: the structure of junction tree
			_lambda: the balance number.

		TODO:
			1. Move jt_rep to Junction Tree Module
			2. Move Different Operator to a linear algebra package
		"""
		self.LOG = Base.get_logger("CliqueMerge")
		self.domain = domain
		self.node_card = [len(vals) for vals in domain.values()]
		self._lambda = float(_lambda)
		self.max_iter = 20
		self.jtree = jtreepy
		self.nodes_num = len(self.node_card)
		self.cliques_num = len(jtreepy)
		self.cnum = range(2, len(jtreepy)+1) if len(jtreepy) >=2 else [1]
		self.jtree_in_node_index = [self.find_subset_index(clique) for clique in jtreepy]
コード例 #36
0
	def setUp(self):
		self.selected_attrs = dict({
			'Age':'C', 
			'workclass':'D',
			'fnlwgt':'C',
			'education':'D',
			'education_num':'D',
			'marital_status':'D',
			'occupation':'D',
			'relationship':'D',
			'race':'D',
			'sex':'D',
			'capital_gain':'C',
			'capital_loss':'C',
			'hours_per_week':'C',
			'native_country':'D',
			'salary_class':'D'
		})		
		self.data = DataUtils(file_path = TESTING_FILE, selected_attrs = self.selected_attrs)
		self.data.data_coarsilize()

		
		self.base = Base()
コード例 #37
0
class DataUtilitiesTests(TestCase):
# TODO: The Data Coarse and Generalize step should seperate, to simulate a more real case.

	def setUp(self):
		self.selected_attrs = dict({
			'Age':'C', 
			'workclass':'D',
			'fnlwgt':'C',
			'education':'D',
			'education_num':'D',
			'marital_status':'D',
			'occupation':'D',
			'relationship':'D',
			'race':'D',
			'sex':'D',
			'capital_gain':'C',
			'capital_loss':'C',
			'hours_per_week':'C',
			'native_country':'D',
			'salary_class':'D'
		})		
		self.data = DataUtils(file_path = TESTING_FILE, selected_attrs = self.selected_attrs)
		self.data.data_coarsilize()

		
		self.base = Base()

	def test_data_preview(self):
		data = DataUtils(file_path = TESTING_FILE)
		preview = data.data_preview()
		self.assertEqual(len(preview.values[0]) > 0, True)

	def test_read_data_by_three_selected_column(self):
		"""
		Test the read data by user specified columns
		"""
		self.assertEqual(len(self.data.get_nodes_name()) == len(self.selected_attrs), True)

	def test_data_domain_keep_original_order(self):
		"""
		Test the order in domain object is in same order with 
		original raw data.
		"""
		df = self.data.get_pandas_df()
		domain = self.data.get_domain()
		cols = domain.keys()
		self.assertEqual(cols == list(df.columns.values), True)

	def test_data_coarsilization(self):
		print self.data.get_pandas_df()[:5]

	def test_data_generalization(self):
		self.data.data_generalize()
		print self.data.get_pandas_df()[:5]

	def test_is_skip_pre_processing_with_create(self):
		create_flag = True
		request = {
			'data_path':'/path/to/dummy/file.csv',
			'selected_attrs':{
				'names':['A', 'D', 'C', 'B'],
				'types':['C', 'C', 'C', 'D']
			}
		}
		instance = {
			'data_path':'/path/to/dummy/file.csv',
			'selected_attrs':{
				'names':['A', 'D', 'C', 'B'],
				'types':['C', 'C', 'C', 'D']
			}
		}
		skip_pre_process = self.base.is_pre_process_skip(request, request, create_flag)
		self.assertEqual(skip_pre_process == False, True)

	def test_is_skip_pre_processing_with_data_path_change(self):

		create_flag = False
		request = {
			'data_path':'/path/to/dummy/file.csv',
			'selected_attrs':{
				'names':['A', 'D', 'C', 'B'],
				'types':['C', 'C', 'C', 'D']
			}
		}
		instance = {
			'data_path':'/path/to/dummy/file22222222.csv',
			'selected_attrs':{
				'names':['A', 'D', 'C', 'B'],
				'types':['C', 'C', 'C', 'D']
			}
		}
		
		skip_pre_process = self.base.is_pre_process_skip(request, instance, create_flag)
		print skip_pre_process
		self.assertEqual(skip_pre_process == False, True)

	def test_is_skip_pre_processing_with_selected_attr_change(self):

		create_flag = False
		request = {
			'data_path':'/path/to/dummy/file.csv',
			'selected_attrs':{
				'names':['A', 'D', 'C', 'B'],
				'types':['C', 'C', 'C', 'D']
			}
		}
		instance = {
			'data_path':'/path/to/dummy/file.csv',
			'selected_attrs':{
				'names':['A', 'D', 'C', 'B'],
				'types':['D', 'D', 'D', 'D']
			}
		}
		skip_pre_process = self.base.is_pre_process_skip(request, instance, create_flag)
		print skip_pre_process
		self.assertEqual(skip_pre_process == False, True)

	def test_is_skip_pre_processing_without_change(self):
		
		create_flag = False
		request = {
			'data_path':'/path/to/dummy/file.csv',
			'selected_attrs':{
				'names':['A', 'D', 'C', 'B'],
				'types':['C', 'C', 'C', 'D']
			}
		}
		instance = {
			'data_path':'/path/to/dummy/file.csv',
			'selected_attrs':{
				'names':['A', 'D', 'C', 'B'],
				'types':['C', 'C', 'C', 'D']
			}
		}
		skip_pre_process = self.base.is_pre_process_skip(request, instance, create_flag)
		self.assertEqual(skip_pre_process == True, True)
コード例 #38
0
ファイル: jtree.py プロジェクト: JiaMingLin/de-identification
	def __init__(self, edges, nodes, jtree_path = None):
		
		edges = self.convert2rlistofvector(edges)

		self.LOG = Base.get_logger("JunctionTree")
		self.jtree = self._build_jtree(edges, nodes, jtree_path)