def __to_change_role__(self, xg_username): ''' to change the user role ''' self.render('user/user_changerole.html', userinfo=MUser.get_by_name(xg_username), kwd={})
def initialize(self): super(BaseHandler, self).initialize() if self.get_current_user(): self.userinfo = MUser.get_by_name(self.get_current_user()) else: self.userinfo = None self.is_p = False # True, if partially rendered. self.is_j = False # True, if json would be returned.
def __register__(self): ''' regist the user. ''' post_data = self.get_post_data() form = SumForm(self.request.arguments) ckname = MUser.get_by_name(post_data['user_name']) ckemail = MUser.get_by_email(post_data['user_email']) if ckname is None: pass else: kwd = { 'info': '用户名已存在,请更换用户名。', 'link': '/user/regist', } self.set_status(400) self.render('misc/html/404.html', cfg=config.CMS_CFG, kwd=kwd, userinfo=None) if ckemail is None: pass else: kwd = { 'info': '邮箱已经存在,请更换邮箱。', 'link': '/user/regist', } self.set_status(400) self.render('misc/html/404.html', cfg=config.CMS_CFG, kwd=kwd, userinfo=None) if form.validate(): res_dic = MUser.create_user(post_data) if res_dic['success']: self.redirect('/user/login') else: kwd = { 'info': '注册不成功', 'link': '/user/regist', } self.set_status(400) self.render('misc/html/404.html', cfg=config.CMS_CFG, kwd=kwd, userinfo=None) else: kwd = { 'info': '注册不成功', 'link': '/user/regist', } self.set_status(400) self.render('misc/html/404.html', cfg=config.CMS_CFG, kwd=kwd, userinfo=None)
def add_user(self, **kwargs): name = kwargs.get('user_name', self.username) post_data = { 'user_name': name, 'user_pass': kwargs.get('user_pass', 'g131322'), 'user_email': kwargs.get('user_email', '*****@*****.**'), } MUser.create_user(post_data) aa = MUser.get_by_name(name) self.user_uid = aa.uid
def initialize(self, **kwargs): # self.set_cookie('b_locale', 'zh_CN') # self.set_cookie('b_locale', 'en') _ = kwargs super(BaseHandler, self).initialize() if self.get_current_user(): self.userinfo = MUser.get_by_name(self.get_current_user()) else: self.userinfo = None self.is_p = False # True, if partially rendered. self.is_j = False # True, if json would be returned.
def run_create_admin(): post_data = { 'user_name': 'giser', 'user_email': '*****@*****.**', 'user_pass': '******', 'role': 'fffff', } muser = MUser() entry = muser.get_by_name(post_data['user_name']) if entry: pass else: muser.insert_data(post_data)
def run_create_admin(): post_data = { 'user_name': ['giser'], 'user_email': ['*****@*****.**'], 'user_pass': ['131322'], 'privilege': ['fffff'], } muser = MUser() entry = muser.get_by_name(post_data['user_name'][0]) if entry: pass else: muser.insert_data(post_data)
def run_create_admin(*args): ''' creating the default administrator. ''' post_data = { 'user_name': 'giser', 'user_email': '*****@*****.**', 'user_pass': '******', 'role': '3300', } if MUser.get_by_name(post_data['user_name']): print('User {user_name} already exists.'.format(user_name='giser')) else: MUser.create_user(post_data)
def run_create_admin(*args): ''' creating the default administrator. ''' post_data = { 'user_name': 'admin', 'user_email': '*****@*****.**', 'user_pass': '******', 'role': '3300', } if MUser.get_by_name(post_data['user_name']): print(f'User `{post_data["user_name"]}` already exists.') else: MUser.create_user(post_data)
def gen_passwd(self): ''' reseting password :return: ''' post_data = self.get_post_data() userinfo = MUser.get_by_name(post_data['u']) sub_timestamp = int(post_data['t']) cur_timestamp = tools.timestamp() if cur_timestamp - sub_timestamp < 600 and cur_timestamp > sub_timestamp: pass else: kwd = { 'info': '密码重置已超时!', 'link': '/user/reset-password', } self.set_status(400) self.render('misc/html/404.html', kwd=kwd, userinfo=self.userinfo) hash_str = tools.md5(userinfo.user_name + post_data['t'] + userinfo.user_pass) if hash_str == post_data['p']: pass else: kwd = { 'info': '密码重置验证出错!', 'link': '/user/reset-password', } self.set_status(400) self.render( 'misc/html/404.html', kwd=kwd, userinfo=self.userinfo, ) new_passwd = tools.get_uu8d() MUser.update_pass(userinfo.uid, new_passwd) kwd = { 'user_name': userinfo.user_name, 'new_pass': new_passwd, } self.render( 'user/user_show_pass.html', cfg=config.CMS_CFG, kwd=kwd, userinfo=self.userinfo, )
def __check_valid(self, post_data): user_create_status = {'success': False, 'code': '00'} if not tools.check_username_valid(post_data['user_name']): user_create_status['code'] = '11' return user_create_status elif not tools.check_email_valid(post_data['user_email']): user_create_status['code'] = '21' return user_create_status elif MUser.get_by_name(post_data['user_name']): user_create_status['code'] = '12' return user_create_status elif MUser.get_by_email(post_data['user_email']): user_create_status['code'] = '22' return user_create_status user_create_status['success'] = True return user_create_status
def add_message(self, **kwargs): post_data = { 'user_name': self.username, 'user_pass': kwargs.get('user_pass', 'g131322'), 'user_email': kwargs.get('user_email', '*****@*****.**'), } MUser.create_user(post_data) aa = MUser.get_by_name(self.username) self.user_id = aa.uid p_d = { 'title': kwargs.get('title', 'iiiii'), 'cnt_md': kwargs.get('cnt_md', 'grgr'), 'time_create': kwargs.get('time_create', '1992'), 'time_update': kwargs.get('time_update', '1996070600'), 'user_name': kwargs.get('user_name', 'ngng'), 'view_count': kwargs.get('view_count', 1), 'logo': kwargs.get('logo', 'prprprprpr'), 'memo': kwargs.get('memo', ''), 'order': kwargs.get('order', '1'), 'keywords': kwargs.get('keywords', ''), 'extinfo': kwargs.get('extinfo', {}), 'kind': kwargs.get('kind2', '1'), 'valid': kwargs.get('valid', 1), } MPost.create_post(self.post_id, p_d) post_reply={ 'post_id':self.post_id, 'user_name':self.username, 'user_id':self.user_id, 'cnt_reply':'daswrevwefgfgff' } self.reply_uid=MReply.create_reply(post_reply) MReplyid.create_replyid(self.post_id,self.reply_uid) aa=MReplyid.get_by_rid(self.post_id) for i in aa: if i.reply1==self.reply_uid: self.reply_id_uid=i.reply0 MReply2User.create_reply(self.user_id,self.reply_uid)
class BaseHandler(tornado.web.RequestHandler): ''' The base class for handlers. ''' def init(self): self.muser = MUser() if self.get_current_user(): self.userinfo = self.muser.get_by_name(self.get_current_user()) else: self.userinfo = None def get_post_data(self): ''' Get all the arguments from post request. :return: direction. ''' post_data = {} for key in self.request.arguments: post_data[key] = self.get_arguments(key)[0] return post_data def parse_url(self, url_str): ''' :param url_str: the request url. :return: the array of request url. ''' url_str = url_str.strip() url_arr = [] if len(url_str) == 0 else url_str.split('/') return url_arr def check_post_role(self, userinfo): ''' check the user role for docs. :param userinfo: :return: ''' priv_dic = {'ADD': False, 'EDIT': False, 'DELETE': False, 'ADMIN': False} if userinfo: pass else: return priv_dic if userinfo.role[1] > '0': priv_dic['ADD'] = True if userinfo.role[1] >= '1': priv_dic['EDIT'] = True if userinfo.role[1] >= '3': priv_dic['DELETE'] = True if userinfo.role[1] >= '2': priv_dic['ADMIN'] = True print('user role: ', priv_dic) return priv_dic def get_current_user(self): return self.get_secure_cookie("user") def is_admin(self): if self.userinfo and self.check_post_role(self.userinfo)['ADMIN']: return True else: return False def editable(self): # Deprecated. if self.get_current_user(): return 1 else: return 0
class UserHandler(BaseHandler): def initialize(self): self.init() self.muser = MUser() self.user_name = self.get_current_user() self.tmpl_dir = 'user' self.tmpl_router = 'info' def get(self, url_str): url_arr = self.parse_url(url_str) if url_str == 'regist': if self.get_current_user(): self.redirect('/') else: self.__to_register__() elif url_str == 'login': self.to_login() elif url_str == 'info': self.show_info() elif url_str == 'logout': self.logout() elif url_str == 'reset-password': self.to_reset_password() elif url_str == 'changepass': self.changepass() elif url_str == 'changeinfo': self.change_info() elif url_str == 'reset-passwd': if self.gen_passwd(): pass else: self.redirect(config.site_url) elif url_arr[0] == 'changerole': self.change_role(url_arr[1]) elif url_str == 'find': if self.tmpl_router == "user": self.to_find() else: self.p_to_find() elif url_arr[0] == 'find': self.find(url_arr[1]) elif url_arr[0] == 'delete_user': self.delete(url_arr[1]) def post(self, url_str): url_arr = self.parse_url(url_str) if url_str == 'regist': self.register() elif url_str == 'j_regist': self.json_register() elif url_str == 'j_changeinfo': self.json_changeinfo() elif url_str == 'j_changepass': self.json_changepass() elif url_str == 'login': self.login() elif url_str == 'changepass': self.changepassword() elif url_arr[0] == 'changepass': self.p_changepassword() elif url_str == 'changeinfo': self.changeinfo() elif url_arr[0] == 'changeinfo': self.p_changeinfo() elif url_str == 'find': self.post_find() elif url_arr[0] == 'find': self.find(url_arr[1]) elif url_str == 'reset-password': self.reset_password() elif url_arr[0] == 'changerole': self.changerole(url_arr[1]) @tornado.web.authenticated def p_changepassword(self): post_data = self.get_post_data() uu = self.muser.check_user(self.user_name, post_data['rawpass']) if uu == 1: self.muser.update_pass(self.user_name, post_data['user_pass']) output = { 'changepass ': uu, } else: output = { 'changepass ': 0, } return json.dump(output, self) @tornado.web.authenticated def p_changeinfo(self): post_data = self.get_post_data() uu = self.muser.check_user(self.user_name, post_data['rawpass']) if uu == 1: self.muser.update_info(self.user_name, post_data['user_email']) output = { 'changeinfo ': uu, } else: output = { 'changeinfo ': 0, } return json.dump(output, self) @tornado.web.authenticated def changepassword(self): post_data = self.get_post_data() uu = self.muser.check_user(self.user_name, post_data['rawpass']) if uu == 1: self.muser.update_pass(self.user_name, post_data['user_pass']) self.redirect('/user/info') else: return False @tornado.web.authenticated def changeinfo(self): post_data = self.get_post_data() uu = self.muser.check_user(self.user_name, post_data['rawpass']) if uu == 1: self.muser.update_info(self.user_name, post_data['user_email']) self.redirect(('/user/info')) else: return False @tornado.web.authenticated def changerole(self, xg_username): post_data = self.get_post_data() if self.tmpl_router == "user": self.muser.update_role(xg_username, post_data['role']) self.redirect(('/user/info')) else: if self.muser.update_role(xg_username, post_data['role']): output = { 'del_category ': 1, } else: output = { 'del_category ': 0, } return json.dump(output, self) @tornado.web.authenticated def logout(self): self.clear_all_cookies() self.redirect('/') @tornado.web.authenticated def changepass(self): self.render( '{1}/{0}/changepass.html'.format(self.tmpl_router, self.tmpl_dir), userinfo=self.userinfo, ) @tornado.web.authenticated def change_info(self): self.render( '{1}/{0}/changeinfo.html'.format(self.tmpl_router, self.tmpl_dir), userinfo=self.userinfo, ) @tornado.web.authenticated def change_role(self, xg_username): self.render('{1}/{0}/changerole.html'.format(self.tmpl_router, self.tmpl_dir), userinfo=self.muser.get_by_name(xg_username)) @tornado.web.authenticated def show_info(self): self.render( '{1}/{0}/info.html'.format(self.tmpl_router, self.tmpl_dir), userinfo=self.userinfo, ) def to_reset_password(self): self.render( 'user/{0}/reset_password.html'.format(self.tmpl_router), userinfo=self.userinfo, ) def to_login(self): if self.get_current_user(): self.redirect('/') else: kwd = { 'pager': '', } self.render( 'user/{0}/login.html'.format(self.tmpl_router), kwd=kwd, userinfo=None, ) def __check_valid(self, post_data): user_create_status = {'success': False, 'code': '00'} if tools.check_username_valid(post_data['user_name']) == False: user_create_status['code'] = '11' return user_create_status elif tools.check_email_valid(post_data['user_email']) == False: user_create_status['code'] = '21' return user_create_status elif self.muser.get_by_name(post_data['user_name']): user_create_status['code'] = '12' return user_create_status elif self.muser.get_by_email(post_data['user_email']): user_create_status['code'] = '22' return user_create_status user_create_status['success'] = True print(user_create_status) return user_create_status def __check_valid_info(self, post_data): user_create_status = {'success': False, 'code': '00'} if tools.check_email_valid(post_data['user_email']) == False: user_create_status['code'] = '21' return user_create_status elif self.muser.get_by_email(post_data['user_email']): user_create_status['code'] = '22' return user_create_status user_create_status['success'] = True return user_create_status def __check_valid_pass(self, post_data): user_create_status = {'success': False, 'code': '00'} #if self.muser.check_user(self.user_name,post_data['user_pass'][0]) ==0: # user_create_status['code'] = '31' # return user_create_status user_create_status['success'] = True return user_create_status def register(self): post_data = self.get_post_data() form = SumForm(self.request.arguments) if form.validate(): res_dic = self.muser.insert_data(post_data) if res_dic['success']: self.redirect('/user/login') else: kwd = { 'info': '注册不成功', } self.set_status(400) self.render( 'html/404.html', cfg=config.cfg, kwd=kwd, userinfo=None, ) else: kwd = { 'info': '注册不成功', } self.set_status(400) self.render( 'html/404.html', cfg=config.cfg, kwd=kwd, userinfo=None, ) def json_register(self): ''' The first char of 'code' stands for the different field. '1' for user_name '2' for user_email '3' for user_pass '4' for user_role The seconde char of 'code' stands for different status. '1' for invalide '2' for already exists. ''' user_create_status = {'success': False, 'code': '00'} post_data = self.get_post_data() user_create_status = self.__check_valid(post_data) if user_create_status['success'] == False: return json.dump(user_create_status, self) print('user_register_status:', user_create_status) form = SumForm(self.request.arguments) if form.validate(): user_create_status = self.muser.insert_data(post_data) print('user_register_status:', user_create_status) return json.dump(user_create_status, self) else: return json.dump(user_create_status, self) def json_changeinfo(self): ''' The first char of 'code' stands for the different field. '1' for user_name '2' for user_email '3' for user_pass '4' for user_role The seconde char of 'code' stands for different status. '1' for invalide '2' for already exists. ''' user_create_status = {'success': False, 'code': '00'} post_data = self.get_post_data() uu = self.muser.check_user(self.user_name, post_data['rawpass']) if uu == 1: user_create_status = self.__check_valid_info(post_data) if user_create_status['success'] == False: return json.dump(user_create_status, self) form_info = SumForm_info(self.request.arguments) if form_info.validate(): user_create_status = self.muser.update_info( self.user_name, post_data['user_email']) return json.dump(user_create_status, self) else: return json.dump(user_create_status, self) else: return False def json_changepass(self): ''' The first char of 'code' stands for the different field. '1' for user_name '2' for user_email '3' for user_pass '4' for user_role The seconde char of 'code' stands for different status. '1' for invalide '2' for already exists. ''' user_create_status = {'success': False, 'code': '00'} post_data = self.get_post_data() uu = self.muser.check_user(self.user_name, post_data['rawpass']) if uu == 1: user_create_status = self.__check_valid_pass(post_data) if user_create_status['success'] == False: return json.dump(user_create_status, self) form_pass = SumForm_pass(self.request.arguments) if form_pass.validate(): self.muser.update_pass(self.user_name, post_data['user_pass']) return json.dump(user_create_status, self) else: return json.dump(user_create_status, self) else: return False def __to_register__(self): kwd = { 'pager': '', } self.render('user/{0}/regist.html'.format(self.tmpl_router), cfg=config.cfg, userinfo=None, kwd=kwd) def login(self): post_data = self.get_post_data() if 'next' in post_data: next_url = post_data['next'] else: next_url = '/' u_name = post_data['user_name'] u_pass = post_data['user_pass'] kwd = { 'pager': '', } result = self.muser.check_user(u_name, u_pass) if result == 1: self.set_secure_cookie("user", u_name) self.muser.update_time_login(u_name) self.redirect("{0}".format(next_url)) elif result == 0: self.set_status(401) kwd = {'info': '密码验证出错,请<a href="/user/login">重新登陆</a>。'} self.render( 'html/404.html', cfg=config.cfg, kwd=kwd, userinfo=self.userinfo, ) elif result == -1: self.set_status(401) kwd = {'info': '没有这个用户'} self.render( 'html/404.html', cfg=config.cfg, kwd=kwd, userinfo=self.userinfo, ) else: self.set_status(305) self.redirect("{0}".format(next_url)) def to_find(self, ): kwd = { 'pager': '', } self.render( 'user/{0}/find.html'.format(self.tmpl_router), cfg=config.cfg, kwd=kwd, userinfo=self.userinfo, ) def p_to_find(self, ): kwd = { 'pager': '', } self.render( '{1}/{0}/find_list.html'.format(self.tmpl_router, self.tmpl_dir), kwd=kwd, view=self.muser.get_by_keyword(""), cfg=config.cfg, userinfo=self.userinfo, ) def find(self, keyword): kwd = { 'pager': '', 'unescape': tornado.escape.xhtml_unescape, 'title': '查找结果', } if self.tmpl_router == "user": self.render( 'user/{0}/find_list.html'.format(self.tmpl_router), kwd=kwd, view=self.muser.get_by_keyword(keyword), cfg=config.cfg, userinfo=self.userinfo, ) else: result = self.muser.get_by_keyword(keyword) if result: output = {'find': result} else: output = { 'find': 0, } return json.dump(output, self) def delete(self, del_id): if self.tmpl_router == "user": is_deleted = self.muser.delete(del_id) if is_deleted: self.redirect('/user/find') else: return False else: if self.muser.delete(del_id): output = {'del_category': 1} else: output = { 'del_category': 0, } return json.dump(output, self) def post_find(self): keyword = self.get_argument('keyword') self.find(keyword) def reset_password(self): post_data = self.get_post_data() if 'email' in post_data: userinfo = self.muser.get_by_email(post_data['email']) if tools.timestamp() - userinfo.time_reset_passwd < 70: self.set_status(400) kwd = { 'info': '两次重置密码时间应该大于1分钟', } self.render('html/404.html', kwd=kwd, userinfo=self.userinfo) return False if userinfo: timestamp = tools.timestamp() passwd = userinfo.user_pass username = userinfo.user_name hash_str = tools.md5(username + str(timestamp) + passwd) url_reset = '{0}/user/reset-passwd?u={1}&t={2}&p={3}'.format( config.site_url, username, timestamp, hash_str) email_cnt = ''' <div>请查看下面的信息,并<span style="color:red">谨慎操作</span>:</div> <div>您在"{0}"网站({1})申请了密码重置,如果确定要进行密码重置,请打开下面链接:</div> <div><a href={2}>{2}</a></div> <div>如果无法确定本信息的有效性,请忽略本邮件。</div> '''.format(config.smtp_cfg['name'], config.site_url, url_reset) if send_mail([userinfo.user_email], "{0}|密码重置".format(config.smtp_cfg['name']), email_cnt): self.muser.update_time_reset_passwd(username, timestamp) self.set_status(200) return True else: self.set_status(400) return False else: self.set_status(400) return False else: self.set_status(400) return False def gen_passwd(self): post_data = self.get_post_data() userinfo = self.muser.get_by_name(post_data['u']) sub_timestamp = int(post_data['t']) cur_timestamp = tools.timestamp() if cur_timestamp - sub_timestamp < 600 and cur_timestamp > sub_timestamp: pass else: kwd = { 'info': '密码重置已超时!', } self.set_status(400) self.render('html/404.html', kwd=kwd, userinfo=self.userinfo) hash_str = tools.md5(userinfo.user_name + post_data['t'] + userinfo.user_pass) if hash_str == post_data['p']: pass else: kwd = { 'info': '密码重置验证出错!', } self.set_status(400) self.render( 'html/404.html', kwd=kwd, userinfo=self.userinfo, ) new_passwd = tools.get_uu8d() self.muser.update_pass(userinfo.user_name, new_passwd) kwd = { 'user_name': userinfo.user_name, 'new_pass': new_passwd, } self.render( 'user/{0}/show_pass.html'.format(self.tmpl_router), cfg=config.cfg, kwd=kwd, userinfo=self.userinfo, )
def change_role(self, xg_username): self.render('user/user_changerole.html', userinfo=MUser.get_by_name(xg_username))
class TestMEntity2User(): def setup(self): print('setup 方法执行于本类中每条用例之前') self.M2U = MEntity2User() self.username = '******' self.uu = MUser() self.user_uid = '' self.e_uid = 'q112' self.path = '/static/123123' self.userip = '10.6.0.177' self.ee = MEntity() self.uid = '' def add_user(self, **kwargs): name = kwargs.get('user_name', self.username) post_data = { 'user_name': name, 'user_pass': kwargs.get('user_pass', 'g131322'), 'user_email': kwargs.get('user_email', '{}@kljhqq.com'.format(random.randint(1, 1000000))), } self.uu.create_user(post_data) aa = self.uu.get_by_name(name) self.user_uid = aa.uid def add_entity(self): desc = 'create entity' self.ee.create_entity(self.e_uid, self.path, desc) def add_E2U(self): self.add_user() self.add_entity() self.M2U.create_entity2user(self.e_uid, self.user_uid, self.userip) tt = self.M2U.query_all() for i in tt: if i.entity_id == self.e_uid: self.uid = i.uid def test_get_by_uid(self): self.add_E2U() tt = self.M2U.get_by_uid(self.uid) assert tt.user_ip == self.userip assert tt.entity_id == self.e_uid self.tearDown() def test_delete_by_uid(self): self.add_E2U() tt = self.M2U.get_by_uid(self.uid) assert tt.user_ip == self.userip self.M2U.delete_by_uid(self.e_uid) tt = self.M2U.query_all() tf = True for i in tt: if i.entity_id == self.e_uid: tf = False self.tearDown() assert tf def test_query_all(self): tt = self.M2U.query_all() tf = True for i in tt: if i.entity_id == self.e_uid: tf = False assert tf self.add_E2U() tt = self.M2U.query_all() tf = True for i in tt: if i.entity_id == self.e_uid: tf = True self.tearDown() assert tf def test_get_all_pager(self): self.add_E2U() aa = self.M2U.query_all(limit=200) a = int(aa.count() / 10) + 2 tf = False for i in range(a): tt = self.M2U.get_all_pager(current_page_num=i) for t in tt: if t.uid == self.uid: tf = True assert t.user_id == self.user_uid assert t.user_ip == self.userip self.tearDown() assert tf def test_get_all_pager_by_username(self): self.add_E2U() tf = False aa = self.M2U.get_all_pager_by_username(self.user_uid) for t in aa: if t.uid == self.uid: tf = True assert t.user_ip == self.userip self.tearDown() assert tf def test_create_entity2user(self): self.add_E2U() tt = self.M2U.get_by_uid(self.uid) assert tt.user_ip == self.userip self.tearDown() def test_total_number(self): a = self.M2U.total_number() self.add_E2U() b = self.M2U.total_number() self.tearDown() assert a + 1 <= b def test_total_number_by_user(self): self.add_user() aa = self.M2U.total_number_by_user(self.user_uid) self.add_E2U() bb = self.M2U.total_number_by_user(self.user_uid) self.tearDown() assert aa + 1 <= bb def tearDown(self): print("function teardown") self.uu.delete_by_user_name(self.username) self.ee.delete(self.e_uid) self.M2U.delete_by_uid(self.e_uid)
class TestMReply2User(): def setup(self): print('setup 方法执行于本类中每条用例之前') self.user = MUser() self.reply = MReply() self.r2u = MReply2User() self.username = '******' self.password = '******' self.user_uid = '12345' self.reply_uid = '65412' def add_user(self, **kwargs): name = kwargs.get('user_name', self.username) post_data = { 'user_name': name, 'user_pass': kwargs.get('user_pass', self.password), 'user_email': kwargs.get('user_email', '*****@*****.**'), } self.user.create_user(post_data) aa = self.user.get_by_name(name) self.user_uid = aa.uid def add_reply(self, **kwargs): p_d = { 'post_id': 'gtyu', 'user_name': self.username, 'user_id': self.user_uid, 'category': '0', 'cnt_reply': kwargs.get('cnt_reply', 'kfjd速度很快很低'), } uid = self.reply.create_reply(p_d) self.reply_uid = uid self.r2u.create_reply(self.user_uid, uid) def test_create_reply(self): self.add_user() self.add_reply() self.r2u.create_reply(self.user_uid, self.reply_uid) aa = self.r2u.get_voter_count(self.reply_uid) assert aa >= 1 self.tearDown() # # def test_update(self): # self.r2u.update() def test_delete(self): self.add_user() self.add_reply() self.r2u.create_reply(self.user_uid, self.reply_uid) aa = self.r2u.get_voter_count(self.reply_uid) assert aa >= 1 self.r2u.delete(self.reply_uid) aa = self.r2u.get_voter_count(self.reply_uid) assert aa == 0 self.tearDown() def test_get_voter_count(self): self.add_user() self.add_reply() self.r2u.create_reply(self.user_uid, self.reply_uid) aa = self.r2u.get_voter_count(self.reply_uid) assert aa >= 1 self.tearDown() def tearDown(self): print("function teardown") tt = self.user.get_by_uid(self.user_uid) if tt: self.user.delete(tt.uid) tt = self.reply.get_by_uid(self.reply_uid) if tt: self.reply.delete_by_uid(tt.uid) self.r2u.delete(self.reply_uid)
class TestMUser(): def setup(self): print('setup 方法执行于本类中每条用例之前') self.uu = MUser() self.username = '******' self.uid = '' def test_create_user(self): post_data = { 'user_name': self.username, 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == True self.tearDown() def add_mess(self, **kwargs): name = kwargs.get('user_name', self.username) post_data = { 'user_name': name, 'user_pass': kwargs.get('user_pass', 'g131322'), 'user_email': kwargs.get('user_email', '{}@kljhqq.com'.format(random.randint(1, 1000000))), } self.uu.create_user(post_data) aa = self.uu.get_by_name(name) self.uid = aa.uid def test_create_user2(self): post_data = { 'user_name': '', 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == False post_data = { 'user_name': '天', 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == False post_data = { 'user_name': '/sdfadf', 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == False self.tearDown() def test_update_info(self): post_data = {'user_email': '*****@*****.**'} self.add_mess() user_info = self.uu.get_by_name(self.username) tt = self.uu.update_info(user_info.uid, post_data['user_email']) assert tt['success'] == True self.tearDown() def test_update_pass(self): self.add_mess() post_data = {'user_pass': '******'} self.uu.update_pass(self.uid, post_data['user_pass']) tt = self.uu.get_by_uid(self.uid) assert tt.user_pass == tools.md5(post_data['user_pass']) self.tearDown() def test_update_role(self): self.add_mess() post_data = {'role': '1111'} self.uu.update_role(self.username, post_data['role']) tt = self.uu.get_by_uid(self.uid) assert tt.role == post_data['role'] self.tearDown() def test_total_number(self): a = self.uu.total_number() self.add_mess() b = self.uu.total_number() assert a + 1 <= b self.tearDown() def test_query_pager_by_slug(self): self.add_mess() a = self.uu.total_number() x = int(a / 10) tf = False for i in range(x + 2): aa = self.uu.query_pager_by_slug(current_page_num=i) for y in aa: if y.uid == self.uid: tf = True self.tearDown() assert tf def test_count_of_certain(self): a = self.uu.count_of_certain() self.add_mess() b = self.uu.count_of_certain() assert a + 1 <= b self.tearDown() def test_delete(self): user_info = self.uu.get_by_name(self.username) self.add_mess() user_info2 = self.uu.get_by_name(self.username) aa = self.uu.delete(self.uid) user_info3 = self.uu.get_by_name(self.username) assert aa == True assert user_info == user_info3 assert user_info == None assert user_info2.uid == self.uid self.tearDown() def test_delete_by_user_name(self): user_info = self.uu.get_by_name(self.username) self.add_mess() user_info2 = self.uu.get_by_name(self.username) aa = self.uu.delete_by_user_name(self.username) user_info3 = self.uu.get_by_name(self.username) assert aa == True assert user_info == user_info3 assert user_info == None assert user_info2.uid == self.uid self.tearDown() def test_get_by_keyword(self): self.add_mess() aa = self.uu.get_by_keyword('me') tf = False for i in aa: if i.uid == self.uid: tf = True self.tearDown() assert tf def test_update_time_login(self): self.add_mess() user_info = self.uu.get_by_name(self.username) time.sleep(2) self.uu.update_time_login(self.username) aa = self.uu.get_by_name(self.username) assert user_info.time_login != aa.time_login self.tearDown() def test_update_time_reset_passwd(self): self.add_mess() time_r = 11111111 aa = self.uu.update_time_reset_passwd(self.username, time_r) assert aa == True aa = self.uu.get_by_name(self.username) assert aa.time_reset_passwd == time_r self.tearDown() def test_query_nologin(self): aa = self.uu.query_nologin() self.add_mess() bb = self.uu.query_nologin() assert aa.count() == bb.count() self.tearDown() def test_check_user_by_email(self): post_data = {'user_email': '*****@*****.**', 'user_pass': '******'} self.add_mess(**post_data) aa = self.uu.check_user_by_email(post_data['user_email'], post_data['user_pass']) assert aa == 1 self.tearDown() def test_check_user_by_name(self): post_data = {'user_pass': '******'} self.add_mess(**post_data) aa = self.uu.check_user_by_name(self.username, post_data['user_pass']) assert aa == 1 self.tearDown() def test_check_user(self): post_data = {'user_pass': '******'} self.add_mess(**post_data) aa = self.uu.check_user(self.uid, post_data['user_pass']) assert aa == 1 self.tearDown() def test_get_by_email(self): post_data = {'user_email': '*****@*****.**'} self.add_mess(**post_data) aa = self.uu.get_by_email(post_data['user_email']) assert aa.uid == self.uid self.tearDown() def test_set_sendemail_time(self): self.add_mess() bb = self.uu.get_by_uid(self.uid) time.sleep(2) self.uu.set_sendemail_time(self.uid) aa = self.uu.get_by_uid(self.uid) assert bb.time_email <= aa.time_email self.tearDown() def test_get_by_name(self): self.add_mess() aa = self.uu.get_by_name(self.username) assert aa.uid == self.uid self.tearDown() def test_get_by_uid(self): self.add_mess() aa = self.uu.get_by_uid(self.uid) assert aa.user_name == self.username self.tearDown() def test_query_all(self): aa = self.uu.query_all() tf = True for i in aa: if i.user_name == self.username: tf = False assert tf self.add_mess() aa = self.uu.query_all() tf = False for i in aa: if i.user_name == self.username: tf = True assert tf self.tearDown() def test_db_email(self): self.tearDown() pdata = { 'user_name': 'asdfdsf', 'user_pass': '******', 'user_email': '*****@*****.**', } MUser.create_user(pdata) bb = MUser.create_user(pdata) assert bb == {'code': '31', 'success': False} self.uu.delete_by_user_name(pdata['user_name']) def tearDown(self): print("function teardown") tt = self.uu.get_by_uid(self.uid) if tt: self.uu.delete(tt.uid) self.uu.delete_by_user_name(self.username)
class TestMUser(): def setup(self): print('setup 方法执行于本类中每条用例之前') self.uu = MUser() self.username = '******' self.uid = '' def test_create_user(self): post_data = { 'user_name': self.username, 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == True self.tearDown() def add_mess(self, **kwargs): name = kwargs.get('user_name', self.username) post_data = { 'user_name': name, 'user_pass': kwargs.get('user_pass', 'g131322'), 'user_email': kwargs.get('user_email', '*****@*****.**'), } self.uu.create_user(post_data) aa = self.uu.get_by_name(name) self.uid = aa.uid def test_create_user2(self): post_data = { 'user_name': '', 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == False post_data = { 'user_name': '天', 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == False post_data = { 'user_name': '/sdfadf', 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == False self.tearDown() def test_update_info(self): post_data = {'user_email': '*****@*****.**'} self.add_mess() user_info = self.uu.get_by_name(self.username) tt = self.uu.update_info(user_info.uid, post_data['user_email']) assert tt['success'] == True self.tearDown() def test_update_pass(self): self.add_mess() post_data = {'user_pass': '******'} self.uu.update_pass(self.uid, post_data['user_pass']) tt = self.uu.get_by_uid(self.uid) assert tt.user_pass == tools.md5(post_data['user_pass']) self.tearDown() def test_update_role(self): post_data = {'role': '1111'} tt = self.uu.update_role(self.username, post_data['role']) assert tt == True self.tearDown() # def test_total_number(self): # self.uu.total_number() # # # def test_query_pager_by_slug(self): # self.uu.query_pager_by_slug() # # def test_count_of_certain(self): # self.uu.count_of_certain() # # def test_delete(self): # self.uu.delete() # # def test_delete_by_user_name(self): # self.uu.delete_by_user_name() # # def test_get_by_keyword(self): # self.uu.get_by_keyword() # # def test_update_time_login(self): # self.uu.update_time_login() # # def test_update_time_reset_passwd(self): # self.uu.update_time_reset_passwd() # # def test_query_nologin(self): # self.uu.query_nologin() # # def test_check_user_by_email(self): # self.uu.check_user_by_email() # # def test_check_user_by_name(self): # self.uu.check_user_by_name() # # def test_check_user(self): # self.uu.check_user() # # def test_get_by_email(self): # self.uu.get_by_email() def test_set_sendemail_time(self): self.add_mess() bb = self.uu.get_by_uid(self.uid) time.sleep(2) aa = self.uu.set_sendemail_time(self.uid) aa = self.uu.get_by_uid(self.uid) assert bb.time_email <= aa.time_email self.tearDown() def test_get_by_name(self): self.add_mess() aa = self.uu.get_by_name(self.username) assert aa.uid == self.uid self.tearDown() def test_get_by_uid(self): self.add_mess() aa = self.uu.get_by_uid(self.uid) assert aa.user_name == self.username self.tearDown() def test_query_all(self): aa = self.uu.query_all() tf = True for i in aa: if i.user_name == self.username: tf = False assert tf self.add_mess() aa = self.uu.query_all() tf = False for i in aa: if i.user_name == self.username: tf = True assert tf self.tearDown() def tearDown(self): print("function teardown") tt = self.uu.get_by_uid(self.uid) if tt: self.uu.delete(tt.uid) self.uu.delete_by_user_name(self.username)
class TestMReply(): def setup(self): print('setup 方法执行于本类中每条用例之前') self.post = MPost() self.user = MUser() self.reply = MReply() self.r2u = MReply2User() self.post_title = 'fwwgccc' self.username = '******' self.user_uid = '' self.reply_uid = '' self.post_uid = '998h' self.password = '******' def add_user(self, **kwargs): name = kwargs.get('user_name', self.username) post_data = { 'user_name': name, 'user_pass': kwargs.get('user_pass', self.password), 'user_email': kwargs.get('user_email', '*****@*****.**'), } self.user.create_user(post_data) aa = self.user.get_by_name(name) self.user_uid = aa.uid def add_post(self, **kwargs): p_d = { 'title': kwargs.get('title', self.post_title), 'cnt_md': kwargs.get('cnt_md', 'grgr'), 'time_create': kwargs.get('time_create', '1992'), 'time_update': kwargs.get('time_update', '1996070600'), 'user_name': self.username, 'view_count': kwargs.get('view_count', 1), 'logo': kwargs.get('logo', 'prprprprpr'), 'memo': kwargs.get('memo', ''), 'order': kwargs.get('order', '1'), 'keywords': kwargs.get('keywords', 'sd,as'), 'extinfo': kwargs.get('extinfo', {}), 'kind': kwargs.get('kind', '1'), 'valid': kwargs.get('valid', 1), } MPost.create_post(self.post_uid, p_d) def test_insert_post(self): # raw_count = self.post.get_counts() self.add_post() tt = self.post.get_by_uid(self.post_uid) assert tt.title == self.post_title self.tearDown() def test_insert_user(self): self.add_user() tt = self.user.get_by_uid(self.user_uid) assert tt.user_name == self.username self.tearDown() def add_reply(self, **kwargs): p_d = { 'post_id': self.post_uid, 'user_name': self.username, 'user_id': self.user_uid, 'category': '0', 'cnt_reply': kwargs.get('cnt_reply', 'f4klkj进口国海关好姐姐4'), } uid = self.reply.create_reply(p_d) self.reply_uid = uid self.r2u.create_reply(self.user_uid, uid) def test_insert_reply(self): self.add_user() self.add_post() self.add_reply() aa = self.reply.get_by_uid(self.reply_uid) assert aa.user_name == self.username assert aa.post_id == self.post_uid assert aa.user_id == self.user_uid self.tearDown() def test_update_vote(self): self.add_user() self.add_post() self.add_reply() before = self.reply.get_by_uid(self.reply_uid) self.reply.update_vote(self.reply_uid, 10) after = self.reply.get_by_uid(self.reply_uid) assert after.vote == 10 assert before.vote < after.vote self.tearDown() def test_delete_by_uid(self): self.add_user() self.add_post() self.add_reply() yesrep = self.reply.get_by_uid(self.reply_uid) assert yesrep.post_id == self.post_uid aa = self.reply.delete_by_uid(self.reply_uid) assert aa nosrep = self.reply.get_by_uid(self.reply_uid) assert nosrep == None self.tearDown() def test_modify_by_uid(self): self.add_user() self.add_post() self.add_reply() p_d = { 'user_name': self.username, 'user_id': self.user_uid, 'category': '1', 'cnt_reply': '一二三四', } aa = self.reply.modify_by_uid(self.reply_uid, p_d) assert aa == self.reply_uid tt = self.reply.get_by_uid(self.reply_uid) assert tt.category == p_d['category'] assert tt.cnt_md == p_d['cnt_reply'] self.tearDown() def test_query_pager(self): self.add_user() self.add_post() self.add_reply() aa = self.reply.total_number() a = int(aa / 10) tf = False for i in range(a + 3): list = self.reply.query_pager(current_page_num=i) for x in list: if x.uid == self.reply_uid: tf = True break self.tearDown() assert tf def test_total_number(self): aa = self.reply.total_number() self.add_user() self.add_post() self.add_reply() bb = self.reply.total_number() assert aa + 1 <= bb self.tearDown() def test_count_of_certain(self): aa = self.reply.count_of_certain() self.add_user() self.add_post() self.add_reply() bb = self.reply.count_of_certain() assert aa + 1 <= bb self.tearDown() # def test_delete(self): # self.tearDown() # bb = self.reply.count_of_certain() # print(bb) # self.add_user() # self.add_post() # self.add_reply() # bb = self.reply.count_of_certain() # print(bb) # aa=self.reply.get_by_uid(self.reply_uid) # assert aa.post_id==self.post_uid # aa = self.reply.query_by_post(self.post_uid) # tf = False # for i in aa: # if i.uid == self.reply_uid: # tf = True # break # assert tf # vv=self.reply.delete(self.post_uid) # print('LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLl') # print(vv) # s = self.reply.count_of_certain() # print(s) # # assert vv # aa = self.reply.get_by_uid(self.reply_uid) # self.tearDown() # assert aa==None def test_query_all(self): self.tearDown() aa = self.reply.query_all() tf = True for i in aa: if i.uid == self.reply_uid: tf = False break assert tf self.add_user() self.add_post() self.add_reply() bb = self.reply.query_all() tf = False for i in bb: if i.uid == self.reply_uid: tf = True assert i.post_id == self.post_uid break assert tf self.tearDown() def test_get_by_zan(self): self.add_user() self.add_post() self.add_reply() aa = self.reply.get_by_zan(self.reply_uid) assert aa >= 1 self.tearDown() def test_query_by_post(self): self.add_user() self.add_post() self.add_reply() aa = self.reply.query_by_post(self.post_uid) tf = False for i in aa: if i.uid == self.reply_uid: tf = True break assert tf self.tearDown() def test_get_by_uid(self): self.add_user() self.add_post() self.add_reply() aa = self.reply.get_by_uid(self.reply_uid) assert aa.user_id == self.user_uid self.tearDown() def tearDown(self): print("function teardown") tt = self.post.get_by_uid(self.post_uid) if tt: self.post.delete(tt.uid) self.user.delete_by_user_name(self.username) tt = self.user.get_by_uid(self.user_uid) if tt: self.user.delete(tt.uid) tt = self.reply.get_by_uid(self.reply_uid) if tt: self.reply.delete_by_uid(tt.uid) self.r2u.delete(self.reply_uid)
class TestUser(): def setup(self): print('setup 方法执行于本类中每条用例之前') self.uu = MUser() self.username = '******' def test_insert(self): post_data = { 'user_name': self.username, 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == True def test_insert2(self): post_data = { 'user_name': '', 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == False post_data = { 'user_name': '天', 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == False post_data = { 'user_name': '/sdfadf', 'user_pass': '******', 'user_email': '*****@*****.**', } tt = self.uu.create_user(post_data) assert tt['success'] == False def test_update_info(self): post_data = {'user_email': '*****@*****.**'} self.test_insert() user_info = self.uu.get_by_name(self.username) tt = self.uu.update_info(user_info.uid, post_data['user_email']) assert tt['success'] == True def test_update_pass(self): post_data = {'user_pass': '******'} # tt = self.uu.update_pass(self.username, post_data['user_pass']) # assert tt def test_update_privilege(self): post_data = {'role': '1111'} tt = self.uu.update_role(self.username, post_data['role']) assert tt == True def test_upate(self): assert True def tearDown(self): print("function teardown") self.uu.delete_by_user_name(self.username)
class MaintainPycateCategoryHandler(BaseHandler): def initialize(self): self.init() self.muser = MUser() self.mclass = MCategory() if self.get_current_user(): self.userinfo = self.muser.get_by_name(self.get_current_user()) else: self.userinfo = None def get(self, url_str=''): url_arr = self.parse_url(url_str) if url_str == 'add': self.to_add_class() elif url_str == 'list': self.recent() elif url_str == 'refresh': self.refresh() elif url_arr[0] == 'modify': self.to_modify(url_arr[1]) elif url_arr[0] == 'delete': self.delete(url_arr[1]) else: kwd = { 'info': '页面未找到', } self.render('html/404.html', kwd=kwd) def post(self, url_str=''): url_arr = self.parse_url(url_str) if len(url_arr) == 1 and url_str.endswith('.html'): self.add_post() if url_arr[0] == 'modify': self.update(url_arr[1]) elif url_str == 'add': self.user_add_class() else: self.redirect('html/404.html') def recent(self): kwd = { 'pager': '', 'unescape': tornado.escape.xhtml_unescape, 'title': '最近文档', } self.render('doc/maintain/pycatecategory/category_list.html', kwd=kwd, view=self.mclass.query_recent(), format_date=tools.format_date, userinfo=self.userinfo, ) def refresh(self): kwd = { 'pager': '', 'title': '最近文档', } self.render('doc/maintain/pycatecategory/category_list.html', kwd=kwd, userinfo=self.userinfo, view=self.mclass.query_dated(10), format_date=tools.format_date, unescape=tornado.escape.xhtml_unescape, ) def get_random(self): return self.mclass.query_random() def wiki(self, uid): dbdate = self.mclass.get_by_id(uid) if dbdate: self.viewit(uid) else: self.to_add(uid) def to_add_class(self, ): kwd = { 'pager': '', 'uid': '', } self.render('doc/maintain/pycatecategory/category_add.html', topmenu='', kwd=kwd, userinfo=self.userinfo, ) @tornado.web.authenticated def to_add(self, uid): if self.is_admin(): pass else: return False kwd = { 'uid': uid, 'pager': '', } self.render('doc/maintain/pycatecategory/list.html', kwd=kwd, ) @tornado.web.authenticated def update(self, uid): if self.is_admin(): pass else: return False raw_data = self.mclass.get_by_id(uid) post_data = {} for key in self.request.arguments: post_data[key] = self.get_arguments(key) post_data['user_name'] = self.get_current_user() self.mclass.update(uid, post_data) self.redirect('/maintain/pycatecategory/list'.format(uid)) @tornado.web.authenticated def to_modify(self, id_rec): a = self.mclass.get_by_id(id_rec) # 用户具有管理权限,或文章是用户自己发布的。 if self.is_admin(): pass else: return False kwd = { 'pager': '', } self.render('doc/maintain/pycatecategory/category_edit.html', kwd=kwd, unescape=tornado.escape.xhtml_unescape, dbrec=a, userinfo=self.userinfo, ) @tornado.web.authenticated def viewit(self, post_id): rec = self.mclass.get_by_uid(post_id) if not rec: kwd = { 'info': '您要找的分类不存在。', } self.render('html/404.html', kwd=kwd) return False kwd = { 'pager': '', 'editable': self.editable(), } self.render('doc/maintain/pycatecategory/category_view.html', view=rec, unescape=tornado.escape.xhtml_unescape, kwd=kwd, userinfo=self.userinfo, ) @tornado.web.authenticated def user_add_class(self): if self.is_admin(): pass else: return False post_data = {} for key in self.request.arguments: post_data[key] = self.get_arguments(key) post_data['user_name'] = self.get_current_user() self.mclass.insert_data(post_data) self.redirect('/maintain/pycatecategory/list'.format()) @tornado.web.authenticated def delete(self, del_id): if self.is_admin(): pass else: return False is_deleted = self.mclass.delete(del_id) if is_deleted: self.redirect('/maintain/pycatecategory/list') else: return False