def get_search_options(): driver = utils.start_driver('chrome') home_dir = str(pathlib.Path.home()) session.login(driver, home_dir + '/plst.credential.json') utils.wait(3) filt_name_dict = { 'level': 'SKILL LEVELS', 'role': 'ROLES', 'subject': 'SUBJECTS TO LEARN', 'tool': 'TOOLS', 'cert': 'CERTIFICATIONS', 'author': 'AUTHORS', } try: for filt, filt_name in sorted(filt_name_dict.items()): opt_url_dict = search.get_filter_options_url(driver, filt_name) utils.save_json(opt_url_dict, 'search/filt_{}_urls.json'.format(filt)) utils.wait(10) finally: session.logout(driver) utils.wait(3) utils.close_driver(driver)
def POST(self): data = web.input() ans, current_user = infoDBserver.check_user(userName = data.username, passwd = data.password) if ans: session.login(current_user.userId) raise web.seeother('/') else: page_info = PageInfo('Login',error = u'用户名密码错误!') return render.login(page_info)
def get_course_videos(course_list, ncourse_max): cache_dir = 'cache' driver = utils.start_driver('chrome', download_dir=cache_dir) home_dir = str(pathlib.Path.home()) session.login(driver, home_dir + '/plst.credential.json') utils.wait(3) try: ncourse = 0 for line in open(course_list): if line.startswith('#'): continue course_id = line.rstrip() video_list, nmodule, nclip = load_course_video_list(course_id) nvideo = len(video_list) out_dir = 'courses/{}/videos'.format(course_id) os.makedirs(out_dir, exist_ok=True) if count_videos(out_dir) == nvideo: continue utils.print_message('get video of "{}" ({}/{}): {} modules and ' '{} clips'.format(course_id, ncourse + 1, ncourse_max, nmodule, nclip)) for module_id, clip_id, clip_url in video_list: video_url = course.get_video_url(driver, clip_url) video_basename = video_url.split('?')[0].split('/')[-1] video_name = '{}/{}.{}.{}'.format(out_dir, module_id, clip_id, video_basename) utils.download_file(video_url, video_name, verbose=True) ndownload = count_videos(out_dir) if ndownload != nvideo: utils.print_message('*ERROR*: course "{}", expected {} clips, ' 'downloaded {}'.format( course_id, nvideo, ndownload)) raise ncourse += 1 utils.print_message( '----------------------------------------------') utils.wait(3) if ncourse == ncourse_max: break finally: session.logout(driver) utils.wait(3) utils.close_driver(driver)
def POST(self): data = web.input() ans, current_user = infoDBserver.check_user(userName = data.username, passwd = data.password) ##answer = True ## waiting for delete ##current_user = default_user ## also should be changed if ans: session.login(current_user.userId) raise web.seeother('/') else: page_info = PageInfo('Login',error = '用户名密码错误!') return render.login(page_info)
def POST(self): data = web.input() ans, current_user = infoDBserver.check_user(userName=data.username, passwd=data.password) ##answer = True ## waiting for delete ##current_user = default_user ## also should be changed if ans: session.login(current_user.userId) raise web.seeother('/') else: page_info = PageInfo('Login', error='用户名密码错误!') return render.login(page_info)
def test_login(): session.clear() clear_test_user() user = ctrl_user_manager.register("ycat","passwtest",sex_type.Male,23) utility.check_log(user.user_id,"注册成功",1,0) utility.check_log(user.user_id,"登陆成功",1,1) user = ctrl_user_manager.register("ycat2","passwtest",sex_type.Female,35) utility.check_log(user.user_id,"注册成功",1,0) utility.check_log(user.user_id,"登陆成功",1,1) assert 2 == len(session.g_session_data) assert not session.login("noexit","passwtest") utility.check_log(-1,"noexit登陆失败",0) user = session.login("ycat","passwtest") #utility.check_log(user.user_id,"登陆成功",1) ycatID = user.session_id utility.set_session_id(user.session_id) assert user assert user == session.get() assert user.sex == 1 assert user.nickname == "ycat" assert user.user_id != 0 assert 23 == user.age assert user.certf_state == 0 #session.clear() user = session.login("ycat2","passwtest") utility.set_session_id(user.session_id) assert user assert user.sex == 0 assert user.nickname == "ycat2" assert user.user_id != 0 assert user.certf_state == 0 assert user == session.get() assert 2 == len(session.g_session_data) session.logout() assert not session.get() assert 1 == len(session.g_session_data) assert session.g_session_data[ycatID].session_id == ycatID assert 35 == user.age for i in range(10): assert session._is_repeat_login("ycat","passwtest") assert not session._is_repeat_login("ycat","passwtest_wrong") assert session.login("ycat","passwtest") #repeat login but session keep same assert 1 == len(session.g_session_data) session.clear(); clear_test_user()
def POST(self): data = web.input() if data.password != data.password_confirm: page_info = PageInfo('Register',error = 'two passwords are not same') return render.register(page_info) else: answer, temp_user = infoDBserver.insert_user(userName = data.username, pwd = data.password, mail = data.email) ##answer = True ## waiting for delete ##id = 1 ## if answer: ##session.login(temp_user.id) session.login(temp_user.userId) raise web.seeother('/') else: page_info = PageInfo('Register',error = 'input error') return render.register(page_info)
def test_routers(): req = session.login() for r in routers: _path = session.sub_path(r) print _path r = req.get(_path) assert r.status_code == 200
def web_login(nickname,password): global g_loginFailedCountLock if not g_loginFailedCountLock: g_loginFailedCountLock = threading.RLock() utility.get_timer().setInterval(auto_del_timer,30*60*1000) key = nickname if key: g_loginFailedCountLock.acquire() count = 0 if key in g_loginFailedCount: count = g_loginFailedCount[key] g_loginFailedCountLock.release() if count >= 20: utility.write_log(-1,nickname+"登陆次数过多"+str(count),0) return {"result":"false","msg":"登陆次数过多,请30分钟后重试"} user = session.login(nickname,password) if user: g_loginFailedCountLock.acquire() if key in g_loginFailedCount: del g_loginFailedCount[key]; g_loginFailedCountLock.release() return {"result":"true","msg":(user.nickname+", 欢迎您回来"),"session":user.session_id} else: g_loginFailedCountLock.acquire() if key in g_loginFailedCount: g_loginFailedCount[key]+=1 else: g_loginFailedCount[key]=1 g_loginFailedCountLock.release() return {"result":"false","msg":"用户名或密码不正确"}
async def poller(stream): sreader = asyncio.StreamReader(stream) i = 0 while True: await scheduling.wait() #and await disconnect.wait() b = await sreader.read(1) if b: try: b.decode('utf-8') except UnicodeError: await asyncio.sleep(0) continue if (b == dfl.ESC_CHAR.encode() and stream.__class__.__name__ == 'UART' and not session.logging): i += 1 if i > 2: asyncio.create_task(session.login(m, stream)) session.logging = True elif (b == b'\x1b' and (stream.__class__.__name__ == 'UART' and session.loggedin or stream.__class__.__name__ == 'USB_VCP') and not menu.interactive): asyncio.create_task(menu.main(m, stream, devs)) m.set(b) # Passes ESC to menu. menu.interactive = True else: m.set(b) i = 0 await asyncio.sleep_ms(100)
def get_search_option_courses(): driver = utils.start_driver('chrome') home_dir = str(pathlib.Path.home()) session.login(driver, home_dir + '/plst.credential.json') utils.wait(3) filt_name_dict = { 'role': 'ROLES', 'subject': 'SUBJECTS TO LEARN', 'tool': 'TOOLS', 'cert': 'CERTIFICATIONS', # 'level': 'SKILL LEVELS', # 'author': 'AUTHORS', } try: for filt, filt_name in sorted(filt_name_dict.items()): opt_url_dict = utils.load_json( 'search/filt_{}_urls.json'.format(filt)) out_dir = 'search/filt_{}_courses'.format(filt) os.makedirs(out_dir, exist_ok=True) opt_index = 0 nopt = len(opt_url_dict) for opt, url in sorted(opt_url_dict.items()): opt_index += 1 fname_json = '{}/{}.json'.format(out_dir, opt_index) if os.path.isfile(fname_json): continue # if opt_index >= 10: # break utils.print_message( 'get all courses with filt={}, option={} ({}/{})'.format( filt, opt, opt_index, nopt)) course_id_list = search.get_all_courses_per_option( driver, url, wait_time=10) opt_courses_dict = {opt: course_id_list} utils.save_json(opt_courses_dict, fname_json) utils.wait(20) finally: session.logout(driver) utils.wait(3) utils.close_driver(driver)
def POST(self): data = web.input() if data.password != data.password_confirm: page_info = PageInfo('Register', error='two passwords are not same') return render.register(page_info) else: answer, temp_user = infoDBserver.insert_user( userName=data.username, pwd=data.password, mail=data.email) ##answer = True ## waiting for delete ##id = 1 ## if answer: ##session.login(temp_user.id) session.login(temp_user.userId) raise web.seeother('/') else: page_info = PageInfo('Register', error='input error') return render.register(page_info)
def test_post_bas(): bas = dict( ip_addr="192.168.88.1",bas_name="stdbas", bas_secret="123456",vendor_id='14988', coa_port='3799',time_type='0' ) print 'post bas',bas req = session.login() r = req.post(session.sub_path("/bas/add"),bas) assert r.status_code == 200
def test_post_bas(): bas = dict(ip_addr="192.168.88.1", bas_name="stdbas", bas_secret="123456", vendor_id='14988', coa_port='3799', time_type='0') print 'post bas', bas req = session.login() r = req.post(session.sub_path("/bas/add"), bas) assert r.status_code == 200
def run(self): # login each session for session in self.sessions.itervalues(): session.login() self.userQueue.get() self.userQueue.task_done() # loop for sessions to keep connect while not self.threadStop: time.sleep(1) self.intCnt += 1 if self.intCnt == self.interval: self.intCnt = 0 for session in self.sessions.itervalues(): session.keep_connect() # stop and logout for session in self.sessions.itervalues(): session.logout() self.sessions.clear()
def checkin(update, context): """Check in for current user and send check in result when checkin command used""" try: checkin_url = base_url + "user/checkin" checkin = session.login().post(checkin_url) except requests.exceptions.RequestException: error(update, context) result = json.loads(checkin.text) message = re.sub("<br/>", '\n', result["msg"]) context.bot.send_message(chat_id=update.effective_chat.id, text=message)
def usage(update, context): """Query data usage for current use and send usage info when usage command used""" try: usage_url = base_url usage = session.login().get(usage_url) except requests.exceptions.RequestException: error(update, context) result = BeautifulSoup(usage.text).body.findAll('code') usage_info = tuple(i.text for i in result) message = "用户:%s\n等级:%s\n过期时间:%s\n总流量:%s\n已用流量:%s\n剩余流量:%s" % usage_info context.bot.send_message(chat_id=update.effective_chat.id, text=message)
def main(): ''' Parse and execute user desired functions ''' global VERBOSE parser = argparse.ArgumentParser( description='Wrapper around the op (1password) utility') parser.add_argument('-v', '--verbose', action='store_true', help='Print out debug information.') subparsers = parser.add_subparsers(help='Sub command options') # peyop list list_parse = subparsers.add_parser('list', description='List all items') list_parse.set_defaults(user_func=user_list) # peyop get [item] get_parse = subparsers.add_parser('get', description='Get a particular item') get_parse.add_argument('item', type=str, help='An item to search for in the vault.') get_parse.set_defaults(user_func=user_get) parser.add_argument('user', type=str, help='1password user name.') # Do the parsing args = parser.parse_args() VERBOSE = args.verbose # All commands require us to do a login login(args.user) args.user_func(args)
def url_index(): nick = bottle.request.get_cookie("uname",secret="abc123") pwd = bottle.request.get_cookie("pwd",secret="abc123") if nick and pwd: #保存了cookies user = session.login(nick,pwd) if user: bottle.response.set_cookie('session',user.session_id) bottle.redirect("/index2") return d = session.get_dist2() d["register"] = utility.get_template_file("views/register.tpl",d) d["login"] = utility.get_template_file("views/login.tpl",d) return bottle.template('index', d)
def test_post_member_100(): req = session.login() r0 = req.get(session.sub_path(u"/test/pid?name=预付费包月30元")) assert r0.status_code == 200 pid0 = r0.json()['pid'] for i in range(100): memberi = member.copy() memberi['member_name'] = 'ppmuser%s' % (i + 1) memberi['realname'] = u"测试包月用户%s" % (i + 1) memberi['account_number'] = 'ppm%s' % (i + 1) memberi['ip_address'] = '192.168.1.%s' % (i + 1) memberi['product_id'] = pid0 r = req.post(session.sub_path("/bus/member/open"), data=memberi) assert r.status_code == 200 assert '<span class="wrong">' not in r.text
def test_post_member_100(): req = session.login() r0 = req.get(session.sub_path(u"/test/pid?name=预付费包月30元")) assert r0.status_code == 200 pid0 = r0.json()['pid'] for i in range(100): memberi = member.copy() memberi['member_name'] = 'ppmuser%s'%(i+1) memberi['realname'] = u"测试包月用户%s"%(i+1) memberi['account_number'] = 'ppm%s'%(i+1) memberi['ip_address'] = '192.168.1.%s'%(i+1) memberi['product_id'] = pid0 r = req.post(session.sub_path("/bus/member/open"),data=memberi) assert r.status_code == 200 assert '<span class="wrong">' not in r.text
def test_user_age(): test_user_manager.clear_test_user() now = datetime.datetime(2014,5,27,12,50,43) utility.set_now(now) assert utility.now() == now s = web_register.ctrl_user_manager.register("ycattest","123test",web_register.sex_type.Male,35) utility.set_session_id(s.session_id) assert session.get().age == 35 session.logout() utility.set_now(datetime.datetime(2015,5,27,12,50,43)) s = session.login("ycattest","123test") assert s.age == 36 test_user_manager.clear_test_user() utility.set_now(None)
def test_post_member(): req = session.login() r0 = req.get(session.sub_path(u"/test/pid?name=预付费包月30元")) assert r0.status_code == 200 r1 = req.get(session.sub_path(u"/test/pid?name=预付费时长每小时2元")) assert r1.status_code == 200 r2 = req.get(session.sub_path(u"/test/pid?name=买断包月12个月500元")) assert r2.status_code == 200 r3 = req.get(session.sub_path(u"/test/pid?name=买断时长100元50小时")) assert r3.status_code == 200 r4 = req.get(session.sub_path(u"/test/pid?name=预付费流量每MB0.05元")) assert r4.status_code == 200 r5 = req.get(session.sub_path(u"/test/pid?name=买断流量5元100MB")) assert r5.status_code == 200 # 快速开新户 pid0 = r0.json()['pid'] member['product_id'] = pid0 r = req.post(session.sub_path("/bus/member/open"),data=member) assert r.status_code == 200 assert '<span class="wrong">' not in r.text # 获取memberid r = req.get(session.sub_path(u"/test/mid?name=tester")) assert r.status_code == 200 mid = r.json()['mid'] #新增账号 for _r in (r0,r1,r2,r3,r4,r5): pid = _r.json()['pid'] account = dict( node_id = 1, member_id = mid, realname = u"测试用户", account_number = "test00%s"%pid, password = "******", ip_address = '', address = 'test address', product_id = pid, months = 12, fee_value = '100.00', expire_date = "2500-12-30", status = 1 ) rr = req.post(session.sub_path("/bus/account/open"),data=account) assert rr.status_code == 200 assert '<span class="wrong">' not in r.text
def test_post_member(): req = session.login() r0 = req.get(session.sub_path(u"/test/pid?name=预付费包月30元")) assert r0.status_code == 200 r1 = req.get(session.sub_path(u"/test/pid?name=预付费时长每小时2元")) assert r1.status_code == 200 r2 = req.get(session.sub_path(u"/test/pid?name=买断包月12个月500元")) assert r2.status_code == 200 r3 = req.get(session.sub_path(u"/test/pid?name=买断时长100元50小时")) assert r3.status_code == 200 r4 = req.get(session.sub_path(u"/test/pid?name=预付费流量每MB0.05元")) assert r4.status_code == 200 r5 = req.get(session.sub_path(u"/test/pid?name=买断流量5元100MB")) assert r5.status_code == 200 # 快速开新户 pid0 = r0.json()['pid'] member['product_id'] = pid0 r = req.post(session.sub_path("/bus/member/open"), data=member) assert r.status_code == 200 assert '<span class="wrong">' not in r.text # 获取memberid r = req.get(session.sub_path(u"/test/mid?name=tester")) assert r.status_code == 200 mid = r.json()['mid'] #新增账号 for _r in (r0, r1, r2, r3, r4, r5): pid = _r.json()['pid'] account = dict(node_id=1, member_id=mid, realname=u"测试用户", account_number="test00%s" % pid, password="******", ip_address='', address='test address', product_id=pid, months=12, fee_value='100.00', expire_date="2500-12-30", status=1) rr = req.post(session.sub_path("/bus/account/open"), data=account) assert rr.status_code == 200 assert '<span class="wrong">' not in r.text
def register(nick,pwd,sex,age): assert int(sex) <= 1 age = int(age) try: now = utility.now() db = utility.get_db() c = db.cursor() c.execute("INSERT INTO u_user (NickName,Sex,Password,CreateDate,BirthdayYear,CertfState)VALUES(?,?,?,?,?,?)", (nick,int(sex),pwd,now.strftime("%Y-%m-%d %H:%M:%S"),now.year - age,0)) db.commit() #不这样做取不到user_id user = session.login(nick,pwd) c.execute("INSERT INTO u_profile(ID,EditDate)VALUES(?,?)",(user.user_id,now)) utility.write_log(user.user_id,"注册成功",1,False) db.commit() return user except Exception as err: utility.write_log(-1,nick+"注册失败",0) traceback.print_exc() return None;
def loginpage(): """ loginpage() This function is called twice: - firstly in GET when the system loads, giving in output the mere template. - secondly in POST when the user logs in: the page calls login() (imported from functions) to verify the credential, then: - if login was successful, redirect the user on "main". - else renders the login page again showing the failure message to the user. """ if request.method == "GET": template = env.get_template("login.html") return template.render() if request.method == "POST": log = login(request.form["name"], request.form["pass"]) if not log: return redirect(url_for("main")) else: mappa = {"msg": log, "error": "TRUE"} template = env.get_template("login.html") return template.render(mappa) return "How could I end up here? :/"
def loginpage(): """ loginpage() This function is called twice: - firstly in GET when the system loads, giving in output the mere template. - secondly in POST when the user logs in: the page calls login() (imported from functions) to verify the credential, then: - if login was successful, redirect the user on "main". - else renders the login page again showing the failure message to the user. """ if request.method == "GET": template = env.get_template("login.html") return template.render() if request.method == "POST": log = login(request.form["name"], request.form["pass"]) if not log: return redirect(url_for("main")) else: mappa = {"msg" : log , "error" : "TRUE" } template = env.get_template("login.html") return template.render(mappa) return "How could I end up here? :/"
def main(argv): if len(argv) < 1 or len(argv) > 2: usage() sys.exit(2) dataconn_path = argv[0] obj_id = dataconn_path[len(settings.get_setting('DATACONN_URL')):] rem_obj = "/" in obj_id if len(argv) == 2: if rem_obj: usage() sys.exit(2) query = '?query=' + argv[1] else: if rem_obj: query = '' else: query = '?query=' session_id = session.login() print url = settings.get_setting('BASE_URL') + dataconn_path + query response = requests.get(url, headers=session.get_session_hdr(session_id)) if response.status_code == 404: print "object not found" else: if rem_obj: print_objinfo([response.json()]) else: query_results = response.json()["_embedded"]["query_results"] if "matching_objects" in query_results: print_objinfo(query_results["matching_objects"]) else: print "errors:" for error in query_results["access_errors"]: print " %s" % (error) if json_debug: print "debug:" print " %s" % (response.json()) session.logout(session_id)
def main(argv): global url try: opts, args = getopt.getopt(argv, "hn:p:t:s:v:o:a:c:u:k:e:m:", [ "help", "name=", "path=", "type=", "server=", "volume=", "port=", "account=", "container=", "secure", "username="******"key=", "export=", "mount=", "test=" ]) except getopt.GetoptError: usage() sys.exit(2) conn_name = None conn_path = None conn_type = None host = None backup_host = None port = None gluster_volume = None swift_account = None swift_container = None swift_secure = False swift_username = None swift_key = None nfs_export = None mount = None test = False for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() elif opt in ("-n", "--name"): conn_name = arg elif opt in ("-p", "--path"): conn_path = arg elif opt in ("-t", "--type"): conn_type = arg elif opt in ("-s", "--server"): host = arg elif opt in ("-b", "--backup_server"): backup_host = arg elif opt in ("-v", "--volume"): gluster_volume = arg elif opt in ("-o", "--port"): port = int(arg) elif opt in ("-a", "--account"): swift_account = arg elif opt in ("-c", "--container"): swift_container = arg elif opt in ("--secure"): swift_secure = True elif opt in ("-u", "--username"): swift_username = arg elif opt in ("-k", "--key"): swift_key = arg elif opt in ("-e", "--export"): nfs_export = arg elif opt in ("-m", "--mount"): mount = arg elif opt in ("--test"): test = True url = settings.get_setting('BASE_URL') + settings.get_setting( 'TESTDATACONN_URL') + '?query=' + arg if conn_name is None: if not test: usage() sys.exit(2) else: conn_name = "" if conn_type not in ("file", "gluster", "hdfs", "swift", "nfs"): usage() sys.exit(2) # Current set of endpoint args: host, gluster_volume, port, swift_account, # swift_container, swift_secure, swift_username, swift_key, nfs_export, mount has_swift_only_args = swift_account is not None or swift_container is not None or swift_secure or swift_username is not None or swift_key is not None has_required_args = {} has_required_args["file"] = True has_required_args[ "gluster"] = host is not None and gluster_volume is not None has_required_args["hdfs"] = host is not None has_required_args[ "swift"] = host is not None and swift_account is not None and swift_container is not None has_required_args["nfs"] = host is not None and nfs_export is not None has_wrong_args = {} has_wrong_args[ "file"] = host is not None or gluster_volume is not None or port is not None or has_swift_only_args or nfs_export is not None has_wrong_args[ "gluster"] = has_swift_only_args or nfs_export is not None or mount is not None has_wrong_args[ "hdfs"] = gluster_volume is not None or has_swift_only_args or nfs_export is not None or mount is not None has_wrong_args[ "swift"] = gluster_volume is not None or port is not None or nfs_export is not None or mount is not None has_wrong_args[ "nfs"] = gluster_volume is not None or port is not None or has_swift_only_args if has_wrong_args[conn_type] or not has_required_args[conn_type]: usage() sys.exit(2) session_id = session.login(user='******') if conn_type == "file": response = post_file_dataconn(session_id, conn_path, conn_name, mount) elif conn_type == "gluster": response = post_gluster_dataconn(session_id, conn_path, conn_name, host, gluster_volume, port) elif conn_type == "hdfs": response = post_hdfs_dataconn(session_id, conn_path, conn_name, host, backup_host, port) elif conn_type == "swift": response = post_swift_dataconn(session_id, conn_path, conn_name, host, swift_account, swift_container, swift_secure, swift_username, swift_key) elif conn_type == "nfs": response = post_nfs_dataconn(session_id, conn_path, conn_name, host, nfs_export, mount) print if not test: if response.status_code != 201: print "Data connector creation failed!" print response.text sys.exit() print "Created: %s" % (response.headers["location"]) print else: if response.status_code != 200: print "Data connector test failed!" print response.text sys.exit() query_results = response.json()["query_results"] if "matching_objects" in query_results: query_dataconn.print_objinfo(query_results["matching_objects"]) else: print "errors:" for error in query_results["access_errors"]: print " %s" % (error) if json_debug: print "debug:" print " %s" % (response.json()) session.logout(session_id)
def test_post_node(): req = session.login() r = req.post(session.sub_path("/node/add"), dict(node_name="testnode", node_desc=u"测试区域2")) assert r.status_code == 200
def test_post_product(): req = session.login() for p in products: print 'post product', p r = req.post(session.sub_path("/product/add"), data=p) assert r.status_code == 200
break utils.wait(3) buttons = self.driver.find_elements_by_xpath( '//*[starts-with(@id,"dlBtn_")]//a') return bool(len(buttons) == 0) if __name__ == '__main__': import session import sys driver = utils.start_driver('chrome') home_dir = str(pathlib.Path.home()) session.login(driver, home_dir + '/cma.credential.json') composer_id, work_id, page_id, track_id = [ int(x) for x in sys.argv[1].split(',') ] out_dir = 'midi/{}'.format(composer_id) job = Download(driver, composer_id, work_id, page_id, track_id) job.order() utils.wait(3) success = False fname = job.pickup(out_dir) if fname: success = job.cleanup() if success: utils.print_message('successfully downloaded {}'.format(
def test_post_node(): req = session.login() r = req.post(session.sub_path("/node/add"),dict(node_name="testnode",node_desc=u"测试区域2")) assert r.status_code == 200
def test_post_product(): req = session.login() for p in products: print 'post product',p r = req.post(session.sub_path("/product/add"),data=p) assert r.status_code == 200
course_meta = course.find_element_by_xpath( './/*[@class="courses-list__item-meta"]') out['author'] = course_meta.find_element_by_xpath( './p[@class="courses-list__item-authors"]/span/a').text out['level'] = course_meta.find_element_by_xpath( './p[@class="courses-list__item-level"]').text out['date'] = course_meta.find_element_by_xpath( './time[@class="courses-list__item-date"]').text out['level'] = course_meta.find_element_by_xpath( './time[@class="courses-list__item-duration"]').text ncourse += 1 out_list.append(out) utils.save_json(out_list, json_name) if __name__ == '__main__': import session driver = utils.start_driver('chrome') out_json = sys.argv[1] out_html = out_json.rsplit('.', 1)[0] + '.html' try: session.login(driver, 'input/credential.json') load_all_courses(driver, out_html, num_load=None) get_all_courses(driver, out_json) finally: utils.close_driver(driver)
from selenium import webdriver driver = webdriver.Firefox() from session import login, open_home_page open_home_page() login(login=22, password='******') driver.close()
def login( access_token): try: ret = session.login( access_token) except Exception as e: return errtmpl( '{0}:{1}'.format( type(e), e)) return oktmpl(ret )
def login(self, username=None, password=None): username = username or self._username password = password or self._password self._session = session.login(self._console_url, username, password) self.update_session()