Example #1
0
    def test_support(self):
        """Check creating emp"""

        dr = self.driver
        dr.get("http://*****:*****@id='tree']/ul/li/ul/li[3]/a").click()
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        # 验证新增成功
        dr.find_element_by_id("ctl00_cntQuery_SeachSel1_IoFieldQuery1_txtSimple").send_keys("may")
        dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click()

        # self.assertTrue(EC.presence_of_element_located("//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a"))
        dr.find_element_by_xpath("//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a").click()

        # 验证姓名
        tname = dr.find_element_by_id("ctl00_cntForm_txtName").get_attribute("value")
        lname = dr.find_element_by_id("ctl00_cntForm_txtLoginid").get_attribute("value")
        self.assertEqual(tname, "may1", "username incorrect")
        self.assertEqual(lname, "may", "loginid incorrect")
Example #2
0
    def test_add_chuanyue(self):
        """Chuanyue checking"""
        name = u'传阅' + time.strftime('%m%d-%H:%M:%S',
                                     time.localtime(time.time()))

        dr = self.driver
        dr.get(self.base_url)
        #登录
        base.login(dr, self.cfg['username'], self.cfg['password'])
        dr.switch_to.frame("indexFrame")
        dr.find_element_by_id("imgCloseRemind").click()
        dr.switch_to.frame("MenuFrame")
        #新增传阅
        dr.find_element_by_xpath(
            "//div[@id='tree']/ul/li/ul/li/ul/li/ul/li[4]/a").click()

        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        dr.find_element_by_id("ctl00_cntGrid1_hlkAdd").click()
        #填写标题
        dr.find_element_by_id("ctl00_cntForm_txtSubject").send_keys(name)

        #添加传阅对象
        dr.find_element_by_id("ctl00_cntForm_cmdAdd").click()
        sleep(3)
        Select(
            dr.find_element_by_id("ctl00_cntForm_lstEmp")).select_by_index(0)
        dr.find_element_by_id("ctl00_cntForm_cmdAdd").click()
        Select(
            dr.find_element_by_id("ctl00_cntForm_lstEmp")).select_by_index(1)
        dr.find_element_by_id("ctl00_cntForm_cmdAdd").click()
        dr.find_element_by_id("ctl00_cntButton_cmdOK").click()

        #上传附件
        dr.find_element_by_id("ctl00_cntForm_IoFileAtt1_File1").send_keys(
            u'F:\加班.txt')
        dr.find_element_by_id("ctl00_cntForm_IoFileAtt1_cmdUpFile").click()

        #填写正文
        dr.switch_to_frame("ctl00_cntForm_HtmlEditor1_FCKeditor1___Frame")
        dr.find_element_by_id("xEditingArea").send_keys(u"测试传阅啊!")

        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        #开始传阅
        dr.find_element_by_id("ctl00_cntButton_cmdStartMsg").click()

        #验证传阅
        dr.find_element_by_id("ctl00_MsgTab1_lnk2").click()
        dr.find_element_by_xpath(
            "//table[@id='ctl00_cntGrid1_dgdData']/tbody/tr[2]/td[3]/a").click(
            )
        dr.save_screenshot(self.cfg['test_output_path'] + u"screenshot\传阅.png")
Example #3
0
    def test_add_chuanyue(self):
        """Chuanyue checking"""        
        name = u'传阅'+time.strftime('%m%d-%H:%M:%S',time.localtime(time.time()))

        dr = self.driver
        dr.get(self.base_url)
        #登录
        base.login(dr,self.cfg['username'],self.cfg['password'])
        dr.switch_to.frame("indexFrame")
        dr.find_element_by_id("imgCloseRemind").click()        
        dr.switch_to.frame("MenuFrame")
        #新增传阅
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li/ul/li/ul/li[4]/a").click()
        
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        dr.find_element_by_id("ctl00_cntGrid1_hlkAdd").click()
        #填写标题
        dr.find_element_by_id("ctl00_cntForm_txtSubject").send_keys(name)

        
        #添加传阅对象
        dr.find_element_by_id("ctl00_cntForm_cmdAdd").click() 
        sleep(3)
        Select(dr.find_element_by_id("ctl00_cntForm_lstEmp")).select_by_index(0)
        dr.find_element_by_id("ctl00_cntForm_cmdAdd").click()
        Select(dr.find_element_by_id("ctl00_cntForm_lstEmp")).select_by_index(1)
        dr.find_element_by_id("ctl00_cntForm_cmdAdd").click()
        dr.find_element_by_id("ctl00_cntButton_cmdOK").click()

        #上传附件
        dr.find_element_by_id("ctl00_cntForm_IoFileAtt1_File1").send_keys(u'F:\加班.txt')
        dr.find_element_by_id("ctl00_cntForm_IoFileAtt1_cmdUpFile").click()



        #填写正文
        dr.switch_to_frame("ctl00_cntForm_HtmlEditor1_FCKeditor1___Frame")
        dr.find_element_by_id("xEditingArea").send_keys(u"测试传阅啊!")


        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

   

        #开始传阅
        dr.find_element_by_id("ctl00_cntButton_cmdStartMsg").click()


        #验证传阅
        dr.find_element_by_id("ctl00_MsgTab1_lnk2").click()
        dr.find_element_by_xpath("//table[@id='ctl00_cntGrid1_dgdData']/tbody/tr[2]/td[3]/a").click()
        dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\传阅.png")
Example #4
0
 def test_empty_user_and_password(self):
     """
         Test an empty username and passwod for three cases and assert
         400 Bad request for each case.
     """
     rv=login(self.c,"","admin")
     assert rv.status_code == 400
     rv=login(self.c,"admin","")
     assert rv.status_code == 400
     rv=login(self.c,"","")
     assert rv.status_code == 400
Example #5
0
    def test_add_emp(self):
        """Add emp checking """
        name = "test" + time.strftime('%m%d-%H%M%S', time.localtime(
            time.time()))

        dr = self.driver
        dr.get(self.base_url)

        #登录
        base.login(dr, self.cfg['admin'], self.cfg['password'])

        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("MenuFrame")
        #新增人员
        dr.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[3]/a").click()
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")
        dr.find_element_by_id("ctl00_cntGrid1_lnkAdd").click()
        #填写人员姓名
        dr.find_element_by_id("ctl00_cntForm_txtName").send_keys(name)
        #填写登陆账号
        dr.find_element_by_id("ctl00_cntForm_txtLoginid").send_keys(name)
        #填写部门职位
        Select(dr.find_element_by_id("ctl00_cntForm_EmpDepPos1_drpDep")
               ).select_by_visible_text(u"人力资源部")
        #Select(dr.find_element_by_id("ctl00_cntForm_EmpDepPos1_drpPos")).select_by_value("9")
        #填写登陆密码
        dr.find_element_by_id("ctl00_cntForm_txtInitPW").send_keys("123456")
        dr.find_element_by_id("ctl00_cntForm_txtCheckPW").send_keys("123456")
        #保存退出
        dr.find_element_by_id("ctl00_cntButton_cmdSaveExi").click()

        #验证新增成功
        dr.find_element_by_id(
            "ctl00_cntQuery_SeachSel1_IoFieldQuery1_txtSimple").send_keys(name)
        dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click()

        # self.assertTrue(sel.is_element_present("xpath=//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a"))
        dr.find_element_by_xpath(
            "//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a"
        ).click()

        #验证姓名
        tname = dr.find_element_by_id("ctl00_cntForm_txtName").get_attribute(
            "value")
        lname = dr.find_element_by_id(
            "ctl00_cntForm_txtLoginid").get_attribute("value")
        self.assertEqual(tname, name, "username incorrect")
        self.assertEqual(lname, name, "loginid incorrect")

        dr.save_screenshot(self.cfg['test_output_path'] +
                           u"screenshot\新增人员.png")
Example #6
0
    def test_add_emp(self):
        """Add emp checking """
        name = "test"+time.strftime('%m%d-%H%M%S',time.localtime(time.time()))

        
        dr = self.driver
        dr.get(self.base_url)
        
        #登录
        base.login(dr,self.cfg['admin'],self.cfg['password'])

        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("MenuFrame")
        #新增人员
        dr.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[3]/a").click()
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")
        dr.find_element_by_id("ctl00_cntGrid1_lnkAdd").click()
        #填写人员姓名
        dr.find_element_by_id("ctl00_cntForm_txtName").send_keys(name)
        #填写登陆账号
        dr.find_element_by_id("ctl00_cntForm_txtLoginid").send_keys(name)
        #填写部门职位
        Select(dr.find_element_by_id("ctl00_cntForm_EmpDepPos1_drpDep")).select_by_visible_text(u"人力资源部")
        #Select(dr.find_element_by_id("ctl00_cntForm_EmpDepPos1_drpPos")).select_by_value("9")
        #填写登陆密码
        dr.find_element_by_id("ctl00_cntForm_txtInitPW").send_keys("123456")
        dr.find_element_by_id("ctl00_cntForm_txtCheckPW").send_keys("123456")
        #保存退出
        dr.find_element_by_id("ctl00_cntButton_cmdSaveExi").click()


        #验证新增成功
        dr.find_element_by_id("ctl00_cntQuery_SeachSel1_IoFieldQuery1_txtSimple").send_keys(name)
        dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click()

      
        # self.assertTrue(sel.is_element_present("xpath=//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a"))        
        dr.find_element_by_xpath("//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a").click()
        
        #验证姓名
        tname = dr.find_element_by_id("ctl00_cntForm_txtName").get_attribute("value")
        lname = dr.find_element_by_id("ctl00_cntForm_txtLoginid").get_attribute("value")        
        self.assertEqual(tname,name,"username incorrect")
        self.assertEqual(lname,name,"loginid incorrect") 
        

        dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\新增人员.png")
Example #7
0
    def test_put(self):
        """
            Test the update of a User resource by 
            retrieving items from it and picking a random user. 
            and then updating it's pincode and password.
            
            - Assert the response is 200 
            - that the usermay login with it's new credential
        """
        username='******' % random.randint(0,500000000)
        self.test_post(username)

        items=self.test_get()
        assert len(items) > 2

        user = None
        for user in items:
            if user['username'] == username:
                break


        rv = login(self.c,username,"necronet")

        self.auth_token=json.loads(rv.data)['token']

        user['pincode']='8989'
        user['password']='******'
        rv=self.put(data=json.dumps(user))

        assert rv.status_code == 403
Example #8
0
 def test_login_wrong_pasword(self):
     """
         Try to login using a wrong password.
         Assert that the response is a 401.
     """
     rv=login(self.c,"admin","wrongpassword")
     assert rv.status_code == 401
Example #9
0
def test_workshop_create(base_url, browser, outbox):
    """
    """
    f.create_usertype(slug='tutor', display_name='tutor')
    poc_type = f.create_usertype(slug='poc', display_name='poc')
    state = f.create_state()
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)
    user.save()
    location = f.create_locaiton(name='location1')
    user.profile.location = location
    user.profile.usertype.clear()
    user.profile.usertype.add(poc_type)
    user.profile.interested_states.add(state)

    user.profile.save()

    url = base_url + '/workshop/'
    base.login(browser, url, user, password)

    # validate if user belongs to organisation
    url = base_url + '/workshop/create/'
    browser.visit(url)
    assert browser.is_text_present("create organisaiton.")
    # Create org
    org = f.create_organisation(location=location)
    org.user.add(user)
    user.profile.interested_locations.add(org.location)
#     user.profile.location = org.location
#     user.profile.save()
    org.save()
    section1 = f.create_workshop_section(name='section1')

    # invalid form
    url = base_url + '/workshop/create/'
    browser.visit(url)
    browser.fill('no_of_participants', 10)
    browser.fill('expected_date', '11/12/2018')
    browser.find_by_css('[type=submit]')[0].click()
    assert browser.is_text_present('This field is required.')
    # valid form
    url = base_url + '/workshop/create/'
    base.workshop_create(browser, url, org, section1)
Example #10
0
def test_workshop_create(base_url, browser, outbox):
    """
    """
    f.create_usertype(slug='tutor', display_name='tutor')
    poc_type = f.create_usertype(slug='poc', display_name='poc')
    state = f.create_state()
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)
    user.save()
    location = f.create_locaiton(name='location1')
    user.profile.location = location
    user.profile.usertype.clear()
    user.profile.usertype.add(poc_type)
    user.profile.interested_states.add(state)

    user.profile.save()

    url = base_url + '/workshop/'
    base.login(browser, url, user, password)

    # validate if user belongs to organisation
    url = base_url + '/workshop/create/'
    browser.visit(url)
    assert browser.is_text_present("create organisaiton.")
    # Create org
    org = f.create_organisation(location=location)
    org.user.add(user)
    user.profile.interested_locations.add(org.location)
    #     user.profile.location = org.location
    #     user.profile.save()
    org.save()
    section1 = f.create_workshop_section(name='section1')

    # invalid form
    url = base_url + '/workshop/create/'
    browser.visit(url)
    browser.fill('no_of_participants', 10)
    browser.fill('expected_date', '11/12/2018')
    browser.find_by_css('[type=submit]')[0].click()
    assert browser.is_text_present('This field is required.')
    # valid form
    url = base_url + '/workshop/create/'
    base.workshop_create(browser, url, org, section1)
Example #11
0
    def post(self):
        nickname_or_email = self.get_argument("username")
        password = self.get_argument("password")

        if not util.is_email(nickname_or_email) and util.has_illegal_char(nickname_or_email):
            self.write_errmsg('illegal nickname')
            return
        user = self.muser.do_login(nickname_or_email, password)
        user = login(self, user=user)
        self.write_json(user)
Example #12
0
    def test_logout(self):
        """
        Try to logout in order to do this there should be a login and a authtoken to logout.
        no need to pass any special data in the body.

        Assert that the response is a 204.
        """
        rv=login(self.c,"admin","admin")
        self.auth_token=json.loads(rv.data)['token']
        rv=self.c.delete('/login/%s'% self.auth_token,content_type='application/json',headers=self.config_headers([]))
        assert rv.status_code == 204
Example #13
0
def main():
    auth = login(url, user, password)
    host_group = {}
    cc = 0
    if auth:
        file = open(path,'w')
        file.write(','.join(['Severity','Last change','Age','Host','Name','History Alerts Num','Groups','Templates'])+'\n')
        params = {
            #"output": ["triggerid", "status", "type","value", "description", "templateid"],
            "output": "extend",
            "only_true": True,    #Return only triggers that have recently been in a problem state.
            "monitored": True,    #Return only enabled triggers that belong to monitored hosts and contain only enabled items.
            "selectItems": "extend",
            "selectHosts": ["hostid","status","name"],
            "selectGroups":["name"],
            "selectLastEvent": "extend",
            #"filter": {
                    #    "trigger": trigger_list,
            #    }
            }
        triggers = trigger_get(url, auth, params)
        triggers.sort(key=lambda x:x['lastchange'], reverse=True)
        for trigger in triggers:
            if trigger['value'] == '1' and trigger['status'] == '0':
                cc += 1
                #print trigger
                #itemids = [item['itemid'] for item in trigger['items']]
                #print itemids
                '''
                sub_triggers = trigger_get(auth, {
                    "output": "extend",
                    "itemids" : itemids,
                })
                if len(sub_triggers) > 1:
                    print sub_triggers
                '''
                events = event_get(url, auth, {
                    "output": "extend",
                    "triggerids" : [trigger['triggerid']],
                    "value": "1",
                })
                templates = template_get(url, auth, {
                    "output": "extend",
                    "hostids": trigger['hosts'][0]['hostid'],
                })
                print trigger['hosts'][0]['name'], datetime.now() - trigger['lastchange'], delta(datetime.now() - trigger['lastchange'])
                res = [trigger['priority'].capitalize(), trigger['lastchange'],  delta(datetime.now() - trigger['lastchange']), trigger['hosts'][0]['name'], trigger['description'].replace('{HOST.NAME}',trigger['hosts'][0]['name']), len(events)-1, '/'.join([g['name'] for g in trigger['groups']]), '/'.join([t['name'] for t in templates])]
                line = ','.join([not isinstance(r,str) and str(r) or r for r in res])
                file.write(line.decode("utf-8").encode('GBK')+'\n')
                file.flush()
        file.close()
        #print(cc)
    return cc
Example #14
0
def test_workshop_create(base_url, browser, outbox):
    """
    """
    f.create_usertype(slug="tutor", display_name="tutor")
    user = base.create_user(password)
    url = base_url + "/workshop/"
    base.login_and_confirm(browser, url, outbox, user, password)
    user.save()
    location = f.create_locaiton(name="location1")
    user.profile.location = location
    user.profile.save()

    url = base_url + "/workshop/"
    base.login(browser, url, user, password)

    # validate if user belongs to organisation
    url = base_url + "/workshop/create/"
    browser.visit(url)
    assert browser.is_text_present("create organisaiton.")
    # Create org
    org = f.create_organisation(location=location)
    org.user.add(user)
    user.profile.interested_locations.add(org.location)
    #     user.profile.location = org.location
    #     user.profile.save()
    org.save()
    section1 = f.create_workshop_section(name="section1")

    # invalid form
    url = base_url + "/workshop/create/"
    browser.visit(url)
    browser.fill("no_of_participants", 10)
    browser.fill("expected_date", "11/12/2018")
    browser.find_by_css("[type=submit]")[0].click()
    assert browser.is_text_present("This field is required.")
    # valid form
    url = base_url + "/workshop/create/"
    base.workshop_create(browser, url, org, section1)
Example #15
0
    def test_support(self):
        """Check creating emp"""

        dr = self.driver
        dr.get("http://*****:*****@id='tree']/ul/li/ul/li[3]/a").click()
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        #验证新增成功
        dr.find_element_by_id(
            "ctl00_cntQuery_SeachSel1_IoFieldQuery1_txtSimple").send_keys(
                "may")
        dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click()

        # self.assertTrue(EC.presence_of_element_located("//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a"))
        dr.find_element_by_xpath(
            "//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a"
        ).click()

        #验证姓名
        tname = dr.find_element_by_id("ctl00_cntForm_txtName").get_attribute(
            "value")
        lname = dr.find_element_by_id(
            "ctl00_cntForm_txtLoginid").get_attribute("value")
        self.assertEqual(tname, "may1", "username incorrect")
        self.assertEqual(lname, "may", "loginid incorrect")
Example #16
0
    def test_add_flow(self):
        dr = self.driver
        dr.get(self.base_url)
        #登录
        base.login(dr, self.cfg['admin'], self.cfg['password'])

        #获取当前window句柄
        now_handle = dr.current_window_handle
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("MenuFrame")

        #新增流程
        dr.find_element_by_xpath(
            "//div[@id='tree']/ul/li/ul/li/ul/li[9]/a").click()
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")
        dr.find_element_by_id("ctl00_cntGrid1_hlkDefineGeneralFlow").click()
        dr.find_element_by_id("ctl00_cntGrid1_cmdVmlAdd").click()

        #填写标题并新建
        t = time.strftime('_%m%d_%H:%M', time.localtime(time.time()))
        dr.find_element_by_id("ctl00_cntForm_txtName").send_keys("TestFlow" +
                                                                 t)
        Select(dr.find_element_by_id(
            "ctl00_cntForm_drpModName")).select_by_visible_text(u"通用流程")
        dr.find_element_by_id("ctl00_cntButton_cmdSaveList").click()

        #定义步骤

        #添加通知执行步骤
        self.add_step(u"通知执行")

        dr.switch_to.window(now_handle)
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        #添加审批步骤
        self.add_step(u"审批")

        #跳转回原窗口
        dr.switch_to.window(now_handle)
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        #添加权限对象
        dr.find_element_by_id("ctl00_cntTitle_EditTab1_cmdTab2").click()
        dr.find_element_by_id(
            "ctl00_cntForm_ioCustomRightSet1_cmdRightAdd").click()
        dr.find_element_by_id("ctl00_cntForm_radType_0").click()
        dr.find_element_by_id("ctl00_cntButton_cmdNext").click()
        Select(
            dr.find_element_by_id("ctl00_cntForm_lstDep")).select_by_value("1")
        dr.find_element_by_id("ctl00_cntForm_cmdAdd").click()
        dr.find_element_by_id("ctl00_cntButton_cmdFinish").click()

        #保存退出
        dr.find_element_by_id("ctl00_cntButton_cmdSaveExi").click()

        #验证流程
        dr.find_element_by_id(
            "ctl00_cntQuery_IoFieldQuery1_txtSimple").send_keys("TestFlow" + t)
        dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click()
        dr.find_element_by_xpath(
            "//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[2]/a").click(
            )

        fstep = dr.find_element_by_xpath(
            "//table[@id='ctl00_cntForm_dgdStep']/tbody/tr[3]/td[1]").text
        sstep = dr.find_element_by_xpath(
            "//table[@id='ctl00_cntForm_dgdStep']/tbody/tr[4]/td[1]").text

        self.assertEqual(u"通知执行", fstep)
        self.assertEqual(u"审批", sstep)
        dr.save_screenshot(self.cfg['test_output_path'] +
                           u"screenshot\流程1.png")
Example #17
0
    def test_add_flow(self):
        dr = self.driver
        dr.get(self.base_url)
        #登录
        base.login(dr,self.cfg['admin'],self.cfg['password'])
        
        #获取当前window句柄
        now_handle = dr.current_window_handle
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("MenuFrame")        
        
        #新增流程
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li/ul/li[9]/a").click()
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")
        dr.find_element_by_id("ctl00_cntGrid1_hlkDefineGeneralFlow").click()
        dr.find_element_by_id("ctl00_cntGrid1_cmdVmlAdd").click()

        #填写标题并新建        
        t = time.strftime('_%m%d_%H:%M',time.localtime(time.time()))
        dr.find_element_by_id("ctl00_cntForm_txtName").send_keys("TestFlow"+t)
        Select(dr.find_element_by_id("ctl00_cntForm_drpModName")).select_by_visible_text(u"通用流程")
        dr.find_element_by_id("ctl00_cntButton_cmdSaveList").click()


        #定义步骤 

        #添加通知执行步骤                         
        self.add_step(u"通知执行")

        dr.switch_to.window(now_handle)
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        #添加审批步骤             
        self.add_step(u"审批")      
       
        #跳转回原窗口
        dr.switch_to.window(now_handle)
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        #添加权限对象
        dr.find_element_by_id("ctl00_cntTitle_EditTab1_cmdTab2").click()
        dr.find_element_by_id("ctl00_cntForm_ioCustomRightSet1_cmdRightAdd").click()
        dr.find_element_by_id("ctl00_cntForm_radType_0").click()
        dr.find_element_by_id("ctl00_cntButton_cmdNext").click()
        Select(dr.find_element_by_id("ctl00_cntForm_lstDep")).select_by_value("1")
        dr.find_element_by_id("ctl00_cntForm_cmdAdd").click()
        dr.find_element_by_id("ctl00_cntButton_cmdFinish").click()

        #保存退出
        dr.find_element_by_id("ctl00_cntButton_cmdSaveExi").click()


        #验证流程
        dr.find_element_by_id("ctl00_cntQuery_IoFieldQuery1_txtSimple").send_keys("TestFlow"+t)
        dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click()
        dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[2]/a").click()   

        fstep = dr.find_element_by_xpath("//table[@id='ctl00_cntForm_dgdStep']/tbody/tr[3]/td[1]").text
        sstep = dr.find_element_by_xpath("//table[@id='ctl00_cntForm_dgdStep']/tbody/tr[4]/td[1]").text

        self.assertEqual(u"通知执行",fstep)
        self.assertEqual(u"审批",sstep)
        dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\流程1.png")
Example #18
0
    def test_add_shouwen(self):

        dr = self.driver
        dr.get(self.base_url)
        #登录
        base.login(dr, self.cfg['username'], self.cfg['password'])

        name = u"收文" + '-' + \
        time.strftime('%m%d-%H:%M:%S', time.localtime(time.time()))
        zihao = "zihao1"
        flowname = u"new收文测试"
        sendgov = u"机关1"
        lwdanwei = u"来文单位1"

        ########################################新建收文####################################################
        # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('indexFrame').is_displayed())
        dr.switch_to.frame("indexFrame")
        dr.find_element_by_id("imgCloseRemind").click()
        dr.switch_to.frame("MenuFrame")
        # 新增收文
        # 点击公文管理节点
        dr.find_element_by_xpath(
            "//div[@id='tree']/ul/li/ul/li[1]/ul/li[7]/span").click()
        dr.find_element_by_xpath(
            "//div[@id='tree']/ul/li/ul/li/ul/li[7]/ul/li[1]/a").click()

        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        dr.find_element_by_id("ctl00_cntGrid1_hypAdd").click()

        # 填写标题
        dr.find_element_by_id("ctl00_cntForm_txtTitle").send_keys(name)
        dr.find_element_by_id("ctl00_cntForm_txtZihao").send_keys(zihao)
        Select(dr.find_element_by_id("ctl00_cntForm_FlowSelFlow1_drpFlow")
               ).select_by_visible_text(flowname)
        dr.find_element_by_id("ctl00_cntForm_txtFromGov").send_keys(lwdanwei)
        Select(dr.find_element_by_id(
            "ctl00_cntForm_drpDocReNumberSet")).select_by_index(1)
        # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntForm_drpDocReUnitWord').is_displayed())
        Select(dr.find_element_by_id(
            "ctl00_cntForm_drpDocReUnitWord")).select_by_index(1)

        first_handle = dr.current_window_handle  #获取当前窗口句柄
        dr.find_element_by_id("ctl00_cntForm_hypKeyWord").click()
        sleep(2)
        dr.switch_to.window("SelBaseDic")
        webdriver.ActionChains(dr).double_click(
            dr.find_element_by_id(
                "ctl00_cntForm_dgdData_ctl02_Label2")).perform()

        dr.switch_to.window(first_handle)
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntButton_FlowAction1_cmdSubmit').is_displayed())
        # 提交
        dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdSubmit").click()
        # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntForm_lstEmp').is_displayed())

        # 下一步执行人
        base.choose_emp(dr, u"-流程申请人-")

        # 验证新建发文
        dr.save_screenshot(u"screenshot\新建收文.png")

        ####################################################################################################

        ########################################流程处理####################################################
        # def test_process_fawen(self):
        #     dr = self.driver
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("MenuFrame")
        # 查询待办公文
        # 点击我的批复节点
        dr.find_element_by_xpath(
            "//div[@id='tree']/ul/li/ul/li[2]/span").click()
        dr.find_element_by_xpath(
            "//div[@id='tree']/ul/li/ul/li[2]/ul/li[2]/a/span").click()

        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")
        #点击显示全部流程
        dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click()
        #点击第一条流程
        dr.find_element_by_xpath(
            "//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[4]/a").click(
            )
        #流程处理
        dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdFlMange").click()

        first_handle = dr.current_window_handle  #获取当前窗口句柄
        print(first_handle)
        all_handles = dr.window_handles  # 获取所有窗口句柄

        for handle in all_handles:
            if handle != first_handle:
                print(handle)
                dr.switch_to.window(handle)
                dr.find_element_by_id("ctl00_cntForm_rdYes").click()
                dr.find_element_by_id("ctl00_cntButton_cmdOK").click()
                base.ExeMgr()
                sleep(3)
                # 下一步执行人
                base.choose_emp(dr, u"-流程申请人-")

        dr.switch_to.window(first_handle)
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        dr.find_element_by_id("ctl00_MsgTab1_lnk1").click()

        # 验证处理的发文
        dr.save_screenshot(self.cfg['test_output_path'] +
                           u"screenshot\处理收文.png")
Example #19
0
    def test_add_shouwen(self):

        dr = self.driver
        dr.get(self.base_url)
        # 登录
        base.login(dr, self.cfg["username"], self.cfg["password"])

        name = u"收文" + "-" + time.strftime("%m%d-%H:%M:%S", time.localtime(time.time()))
        zihao = "zihao1"
        flowname = u"new收文测试"
        sendgov = u"机关1"
        lwdanwei = u"来文单位1"

        ########################################新建收文####################################################
        # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('indexFrame').is_displayed())
        dr.switch_to.frame("indexFrame")
        dr.find_element_by_id("imgCloseRemind").click()
        dr.switch_to.frame("MenuFrame")
        # 新增收文
        # 点击公文管理节点
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[1]/ul/li[7]/span").click()
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li/ul/li[7]/ul/li[1]/a").click()

        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        dr.find_element_by_id("ctl00_cntGrid1_hypAdd").click()

        # 填写标题
        dr.find_element_by_id("ctl00_cntForm_txtTitle").send_keys(name)
        dr.find_element_by_id("ctl00_cntForm_txtZihao").send_keys(zihao)
        Select(dr.find_element_by_id("ctl00_cntForm_FlowSelFlow1_drpFlow")).select_by_visible_text(flowname)
        dr.find_element_by_id("ctl00_cntForm_txtFromGov").send_keys(lwdanwei)
        Select(dr.find_element_by_id("ctl00_cntForm_drpDocReNumberSet")).select_by_index(1)
        # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntForm_drpDocReUnitWord').is_displayed())
        Select(dr.find_element_by_id("ctl00_cntForm_drpDocReUnitWord")).select_by_index(1)

        first_handle = dr.current_window_handle  # 获取当前窗口句柄
        dr.find_element_by_id("ctl00_cntForm_hypKeyWord").click()
        sleep(2)
        dr.switch_to.window("SelBaseDic")
        webdriver.ActionChains(dr).double_click(dr.find_element_by_id("ctl00_cntForm_dgdData_ctl02_Label2")).perform()

        dr.switch_to.window(first_handle)
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntButton_FlowAction1_cmdSubmit').is_displayed())
        # 提交
        dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdSubmit").click()
        # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntForm_lstEmp').is_displayed())

        # 下一步执行人
        base.choose_emp(dr, u"-流程申请人-")

        # 验证新建发文
        dr.save_screenshot(u"screenshot\新建收文.png")

        ####################################################################################################

        ########################################流程处理####################################################
        # def test_process_fawen(self):
        #     dr = self.driver
        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("MenuFrame")
        # 查询待办公文
        # 点击我的批复节点
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[2]/span").click()
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[2]/ul/li[2]/a/span").click()

        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")
        # 点击显示全部流程
        dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click()
        # 点击第一条流程
        dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[4]/a").click()
        # 流程处理
        dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdFlMange").click()

        first_handle = dr.current_window_handle  # 获取当前窗口句柄
        print (first_handle)
        all_handles = dr.window_handles  # 获取所有窗口句柄

        for handle in all_handles:
            if handle != first_handle:
                print (handle)
                dr.switch_to.window(handle)
                dr.find_element_by_id("ctl00_cntForm_rdYes").click()
                dr.find_element_by_id("ctl00_cntButton_cmdOK").click()
                base.ExeMgr()
                sleep(3)
                # 下一步执行人
                base.choose_emp(dr, u"-流程申请人-")

        dr.switch_to.window(first_handle)
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        dr.find_element_by_id("ctl00_MsgTab1_lnk1").click()

        # 验证处理的发文
        dr.save_screenshot(self.cfg["test_output_path"] + u"screenshot\处理收文.png")
Example #20
0
 def get(self):
     user = login(self, user=self.current_user)
     self.write_json(user)
Example #21
0
 def activate_account(self):
     value = self.get_argument('v')
     user_id = util.decrypt(value)
     self.muser.do_activate_account(user_id)
     user = login(self, user_id=user_id)
     self.write_json(user)
Example #22
0
    def test_add_fawen(self):
        dr = self.driver
        dr.get(self.base_url)
        #登录
        base.login(dr,self.cfg['username'],self.cfg['password'])

########################################新建发文####################################################
        name = u"发文" + '-' + time.strftime('%m%d-%H:%M:%S', time.localtime(time.time()))
        zihao = u"字号1"
        flowname = u"测试发文流程(重要)"
        sendgov = u"机关1"

        dr.switch_to.frame("indexFrame")
        dr.find_element_by_id("imgCloseRemind").click()
        dr.switch_to.frame("MenuFrame")
        # 新增发文
        # 点击公文管理节点
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[1]/ul/li[7]/span").click()        
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li/ul/li[7]/ul/li[2]/a").click()

        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")

        dr.find_element_by_id("ctl00_cntGrid1_hypAdd").click()   

        # 填写标题
        dr.find_element_by_id("ctl00_cntForm_txtTitle").send_keys(name)
        dr.find_element_by_id("ctl00_cntForm_txtZihao").send_keys(zihao)
        Select(dr.find_element_by_id("ctl00_cntForm_FlowSelFlow1_drpFlow")).select_by_visible_text(flowname)
        Select(dr.find_element_by_id("ctl00_cntForm_drpDocNumberSet")).select_by_index(2)
        sleep(2)
        Select(dr.find_element_by_id("ctl00_cntForm_drpDocUnitWord")).select_by_index(2)
        sleep(2)
        dr.find_element_by_id("ctl00_cntForm_txtSendGov").send_keys(sendgov)



        first_handle = dr.current_window_handle #获取当前窗口句柄
        print(first_handle)

        # 新增发文稿纸
        dr.find_element_by_id("ctl00_cntForm_cmdDraft").click()
        sleep(10) #等待足够长的时间,直到稿纸模板窗口消失,剩下2个窗口,再执行下面脚本关闭文本编辑窗口。
        all_handles = dr.window_handles  # 获取所有窗口句柄        
        
        for handle2 in all_handles:
            if handle2 != first_handle:
                print(handle2)                                           
                dr.switch_to.window(handle2)                                          
                dr.close()                
                base.ExeMgr()
                break

        
        sleep(2)
        dr.switch_to_window(first_handle)
        dr.switch_to_frame("indexFrame")        
        dr.switch_to_frame("PageFrame")
        

        # 提交
        dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdSubmit").click()
        
        # 下一步执行人
        base.choose_emp(dr,u"-流程申请人-")



        # 验证新建发文
        dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\新建发文.png")        

####################################################################################################




########################################流程处理####################################################

        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("MenuFrame")
        # 查询待办公文
        # 点击我的批复节点
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[2]/span").click()        
        dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[2]/ul/li[2]/a/span").click()

        dr.switch_to.default_content()
        dr.switch_to.frame("indexFrame")
        dr.switch_to.frame("PageFrame")
        #点击显示全部流程
        dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click()
        #点击第一条流程
        dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[4]/a").click()
        #流程处理
        dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdFlMange").click()


        first_handle = dr.current_window_handle #获取当前窗口句柄
        print(first_handle)
        all_handles = dr.window_handles  # 获取所有窗口句柄        
        
        for handle in all_handles:
            if handle != first_handle:
                print(handle)                                           
                dr.switch_to.window(handle)
                dr.find_element_by_id("ctl00_cntForm_rdYes").click()
                dr.find_element_by_id("ctl00_cntButton_cmdOK").click()
                base.ExeMgr()
                sleep(2)
                # 下一步执行人
                base.choose_emp(dr,u"-流程申请人-")
                  
           
        dr.switch_to.window(first_handle)
        dr.switch_to.frame("indexFrame")        
        dr.switch_to.frame("PageFrame")
        dr.find_element_by_id("ctl00_MsgTab1_lnk1").click()
        # 验证处理的发文
        dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\处理发文.png")
        

####################################################################################################


########################################套红步骤生成正式文件####################################################

        #待办流程
        dr.find_element_by_id("ctl00_MsgTab1_lnk0").click()
        #点击显示全部流程
        dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click()
        #点击第一条流程
        dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[4]/a").click()

        first_handle = dr.current_window_handle #获取当前窗口句柄
        print(first_handle)
        #生成正式文件
        dr.find_element_by_id("ctl00_cntForm_cmdOfficial").click()
        sleep(10)
        all_handles = dr.window_handles  # 获取所有窗口句柄        
        
        for handle3 in all_handles:
            if handle3 != first_handle:
                print(handle3)                                           
                dr.switch_to.window(handle3)                                          
                dr.close()                
                base.ExeMgr()
                break                            
                
        sleep(3)
        
        dr.switch_to.window(first_handle)
        dr.switch_to.frame("indexFrame")        
        dr.switch_to.frame("PageFrame")

        #流程处理
        dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdFlMange").click()
        all_handles = dr.window_handles  # 获取所有窗口句柄        
        
        for handle in all_handles:
            if handle != first_handle:
                print(handle)                                           
                dr.switch_to.window(handle)
                dr.find_element_by_id("ctl00_cntForm_rdYes").click()
                dr.find_element_by_id("ctl00_cntButton_cmdOK").click()
                base.ExeMgr()                
                break
        sleep(3)
        dr.switch_to.window(first_handle)
        dr.switch_to.frame("indexFrame")        
        dr.switch_to.frame("PageFrame")
        dr.find_element_by_id("ctl00_MsgTab1_lnk3").click()
        #点击显示全部流程
        #dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click()
        #点击第一条流程
        dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[3]/a").click()
        dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\正式文件.png")
Example #23
0
def test_workshop_list(base_url, browser, outbox):
    """
    Following testcases will be checked:
    - Check workshop listing for user with usertype poc
    - Check workshop listing for user with usertype tutor
    - Check workshop listing for user with usertype lead
    - Check workshop listing for user with no usertype
    """

    # Create usertypes
    # poc_type = f.create_usertype(slug='poc', display_name='poc')
    # tutor_type = f.create_usertype(slug='tutor', display_name='tutor')
    regional_lead_type = f.create_usertype(
        slug='lead', display_name='regional lead')

    # Testcase with usertyep poc
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)
    # user.profile.usertype.add(poc_type)
    # user.save()

    # Create org
    org = f.create_organisation()
    org.user.add(user)
    user.profile.interested_locations.add(org.location)
    user.profile.location = org.location
    user.profile.save()
    org.save()

    # Create workshop
    workshop = f.create_workshop(requester=org)
    workshop.expected_date = datetime.now() + timedelta(days=20)
    workshop.status = WorkshopStatus.REQUESTED
    workshop.location = org.location
    workshop.save()

    url = base_url + '/workshop/'
    base.login(browser, url, user, password)
    data_check = browser.find_by_text(org.name)
    assert data_check

    # Testcase for usertype tutor
    browser.visit(base_url + "/accounts/logout")
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)
    # user.profile.usertype.add(tutor_type)
    # user.save()

    # url = base_url + '/workshop/'
    # base.login(browser, url, user, password)
    # # User not associate with workshop
    # data_check = browser.find_by_text(org.name)
    # assert [] == data_check

    # User associated with workshop
    workshop.presenter.add(user)
    browser.visit(url)
    # data_check = browser.find_by_text(org.name)
    # assert data_check

    # Testcase for lead
    browser.visit(base_url + "/accounts/logout")
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)

    user.profile.usertype.add(regional_lead_type)
    user.save()
    lead = RegionalLead.objects.create(location=org.location)
    lead.leads.add(user)

    url = base_url + '/workshop/'
    base.login(browser, url, user, password)
    # data_check = browser.find_by_text(org.name)
    # assert data_check

    # Testcase for user with no usertype
    browser.visit(base_url + "/accounts/logout")
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)

    url = base_url + '/workshop/'
    base.login(browser, url, user, password)
Example #24
0
def test_workshop_list(base_url, browser, outbox):
    """
    Following testcases will be checked:
    - Check workshop listing for user with usertype poc
    - Check workshop listing for user with usertype tutor
    - Check workshop listing for user with usertype lead
    - Check workshop listing for user with no usertype
    """

    # Create usertypes
    poc_type = f.create_usertype(slug='poc', display_name='poc')
    tutor_type = f.create_usertype(slug='tutor', display_name='tutor')
    regional_lead_type = f.create_usertype(slug='lead', display_name='regional lead')

    # Testcase with usertyep poc
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)
    user.profile.usertype.add(poc_type)
    user.save()

    # Create org
    org = f.create_organisation()
    org.user.add(user)
    user.profile.interested_locations.add(org.location)
    org.save()

    # Create workshop
    workshop = f.create_workshop(requester=org)
    workshop.expected_date = datetime.now() + timedelta(days=20)
    workshop.status = WorkshopStatus.REQUESTED
    workshop.location = org.location
    workshop.save()

    url = base_url + '/workshop/'
    base.login(browser, url, user, password)
    data_check = browser.find_by_text(org.name)
    assert data_check

    # Testcase for usertype tutor
    browser.visit(base_url + "/accounts/logout")
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)
    user.profile.usertype.add(tutor_type)
    user.save()

    url = base_url + '/workshop/'
    base.login(browser, url, user, password)
    # User not associate with workshop
    data_check = browser.find_by_text(org.name)
    assert [] == data_check

    # User associated with workshop
    workshop.presenter.add(user)
    browser.visit(url)
    data_check = browser.find_by_text(org.name)
    assert data_check

    # Testcase for lead
    browser.visit(base_url + "/accounts/logout")
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)

    user.profile.usertype.add(regional_lead_type)
    user.save()
    lead = RegionalLead.objects.create(location=org.location)
    lead.leads.add(user)

    url = base_url + '/workshop/'
    base.login(browser, url, user, password)
    data_check = browser.find_by_text(org.name)
    assert data_check

    # Testcase for user with no usertype
    browser.visit(base_url + "/accounts/logout")
    user = base.create_user(password)
    url = base_url + '/workshop/'
    base.login_and_confirm(browser, url, outbox, user, password)

    url = base_url + '/workshop/'
    base.login(browser, url, user, password)
    data_check = browser.find_by_text(org.name)
    assert [] == data_check
Example #25
0
 def test_login_right_password(self):
     """
     Try to login using a correct password. The response should be 200.
     """
     rv=login(self.c,"admin","admin")
     assert rv.status_code == 200
Example #26
0
def exerciseN(le, uebung):

    url = "%s%s-%s" % (base.EXERCISE_BASE_URL, le, uebung)

    driver = base.login(url=url)
    wait = WebDriverWait(driver, 3)
    action = webdriver.common.action_chains.ActionChains(driver)

    exercise_repeated = None
    try:
        zeilenwiederholung_btn = wait.until(
            EC.presence_of_element_located((By.ID, "test")))
        exercise_repeated = False
        ts_xpath_id = "repeatLines_value_"
    except TimeoutException:
        zeilenwiederholung_btn = wait.until(
            EC.presence_of_element_located((By.ID, "toggle-repeat-exercise")))
        exercise_repeated = True
        ts_xpath_id = "sliding-range-repeat-exercise"
    zeilenwiederholung_btn.click()

    # Find all "ts-sliding-range" elements where id contains ts_xpath_id
    for tsr in driver.find_elements_by_xpath(
            '//ts-sliding-range[contains(@id, "' + ts_xpath_id + '")]'):
        # Scroll to element
        driver.execute_script("arguments[0].scrollIntoView(false)", tsr)
        # Set value to 2
        driver.execute_script("arguments[0].setAttribute('value', '2')", tsr)

        # Move slider to x=80 or x=35, y=5 and click
        if exercise_repeated:
            action.move_to_element_with_offset(tsr, 35, 5)
        else:
            action.move_to_element_with_offset(tsr, 80, 5)
        action.click()
        action.perform()

    # Starte Übung
    driver.find_element_by_tag_name("body").send_keys(Keys.SPACE)

    delay = 3  # seconds
    try:
        WebDriverWait(driver, delay).until(
            EC.presence_of_element_located((By.ID, 'finish-editor')))
    except TimeoutException:
        print("Loading took too much time!")

    while driver.current_url == "%s/editor" % (url):
        line = driver.find_element_by_xpath("//div[@id='line']/input")
        editor_source_texts = driver.find_elements_by_xpath(
            "//div[@class='editor-source-text']/ts-line-display/ts-word-display"
        )
        for editor_source_text in editor_source_texts:
            spans = editor_source_text.find_elements_by_xpath("./span")
            checked_for_pressed_key = False
            for span in spans:
                if "space" in span.get_attribute("class"):
                    line.send_keys(" ")
                    checked_for_pressed_key = True

            if not checked_for_pressed_key:
                line.send_keys(editor_source_text.text)
            base.time.sleep(.1 + (base.rnd.random() * base.WAIT_PERIOD))
        line.send_keys(Keys.ENTER)