def test_create_user_1(self): # define user user = User() user.username='******' user['email']= '*****@*****.**' user['name']= 'Catalin Balan' # create user UserManager(self.env).create_user(user) # test db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute("SELECT name, value " "FROM session_attribute " "WHERE sid='cbalan' and name in ('enabled', 'name', 'email') " "ORDER BY name") result = {} for name, value in cursor: result[name]=value self.assertEqual(result['name'], 'Catalin Balan') self.assertEqual(result['email'], '*****@*****.**') self.assertEqual(result['enabled'], '1') self.assertEqual(len(result),3)
def test_search_users_1(self): # create users UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**', company='opt')) UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros')) UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros')) # search users using "default_attributes" search_result = UserManager(self.env).search_users(User(email='%culapov%')) # test self.assertEqual(len(search_result), 1)
def test_search_users_2(self): # create users UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**', company='opt')) UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros')) UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros')) # search users using "changes" user_template = User() user_template['email']='%culapov%' search_result = UserManager(self.env).search_users(user_template) # test self.assertEqual(len(search_result), 1)
def test_get_active_users(self): # create users UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**')) UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**')) # get active users active_users = UserManager(self.env).get_active_users() # test self.assertEqual(active_users[0].username, 'cbalan') self.assertEqual(active_users[1].username, 'aculapov') self.assertEqual(len(active_users), 2)
def _do_import_current_users(self, req, dry_run=False): """ """ active_users = [ user.username for user in UserManager(self.env).get_active_users() ] try: from acct_mgr.api import AccountManager known_users = list(AccountManager(self.env).get_users()) except: return [] imported_users = [] for username in known_users: if not username in active_users: imported_users.append(username) if not dry_run: UserManager(self.env).create_user(User(username)) if dry_run: return imported_users if len(imported_users) > 0: return _("Successfully imported the following users [%s].") % ( ','.join(imported_users)) else: return _("No users imported.")
def _do_create_user(self, req): """ """ if not req.args.get('um_newuser_username') or not req.args.get( 'um_newuser_username').strip(): raise TracError(_("Username field is mandatory")) is_trac_managed = req.args.get('um_newuser_type') == 'trac-managed' if is_trac_managed and not req.args.get('um_newuser_password'): raise TracError(_('Password field it\'s mandatory')) user = User(req.args.get('um_newuser_username').strip()) for field in ['name', 'email', 'role' ] + (is_trac_managed and ['password'] or []): if field == 'password': if req.args.get('um_newuser_password') == req.args.get( 'um_newuser_confirm_password'): try: from acct_mgr.api import AccountManager AccountManager(self.env).set_password( user.username, req.args.get('um_newuser_password')) except Exception, e: self.log.error(e) raise TracError( _('Unable to set %s\'s password. Please check out log messages.' % (user.username))) else: raise TracError(_('Passwords don\'t match')) continue if req.args.get('um_newuser_%s' % (field)): user[field] = req.args.get('um_newuser_%s' % (field))
def test_get_user(self): # create user UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**')) # get user user = UserManager(self.env).get_user('cbalan') # test self.assertEqual(user['name'], 'Catalin Balan') self.assertEqual(user['email'], '*****@*****.**')
def test_delete_attribute(self): # create users UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**', company='opt')) UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros')) UserManager(self.env).create_user(User(username='******', name="Andrei Culapov", email='*****@*****.**', company='ros')) # test before db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute("SELECT name, value " "FROM session_attribute " "WHERE sid='cbalan' " "ORDER BY name") result = {} for name, value in cursor: result[name]=value self.assertEqual(len(result),4) # delete attribute user=UserManager(self.env).get_user('cbalan') del user['name'] del user['email'] user.save() # test after db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute("SELECT name, value " "FROM session_attribute " "WHERE sid='cbalan' " "ORDER BY name") result = {} for name, value in cursor: result[name]=value self.assertEqual(len(result),2)
def test_save_user(self): # create user UserManager(self.env).create_user(User(username='******', name="Catalin Balan", email='*****@*****.**')) # get user user = UserManager(self.env).get_user('cbalan') user['bio']="Some bio..." user.save() user_reloaded = UserManager(self.env).get_user('cbalan') # test self.assertEqual(user_reloaded['name'], 'Catalin Balan') self.assertEqual(user_reloaded['email'], '*****@*****.**') self.assertEqual(user_reloaded['bio'], 'Some bio...')
def expand_macro(self, formatter, name, content): env = self.env req = formatter.req content_args = {} data = dict(user_profiles=[], user_profile_fields={}) layout_args = {} rendered_result = "" user_profile_templates = [] # collecting arguments if content: for i, macro_args in enumerate(content.split('|')): if i == 0: content_args = MacroArguments(macro_args) continue if i == 1: layout_args = MacroArguments(macro_args) break # extracting userProfile attrs if len(content_args) > 0: user_profile_templates.append(User(**content_args)) if len(content_args.get_list_args()) > 0: for list_item in content_args.get_list_args(): user_profile_templates.append( User(**MacroArguments(list_item[1:len(list_item) - 1]))) # adding profiles fields description data['user_profile_fields'].update( UserProfileManager(env).get_user_profile_fields( ignore_internal=True)) # removing picture_href data['user_profile_fields'].pop('picture_href') def inline_wiki_to_html(text): return wiki_to_html(text, env, req) data['wiki_to_html'] = inline_wiki_to_html # grabbing users if len(user_profile_templates) > 0: data['user_profiles'] = UserManager(env).search_users( user_profile_templates) else: data['user_profiles'] = UserManager(env).get_active_users() data['cells'] = list(self._get_cells(req, data['user_profiles'])) # add stylesheet&script add_script(req, 'tracusermanager/js/macros_um_profile.js') add_stylesheet(req, 'tracusermanager/css/macros_um_profile.css') # render template template = Chrome(env).load_template('macro_um_profile.html', method='xhtml') data = Chrome(env).populate_data(req, {'users': data}) rendered_result = template.generate(**data) # wrap everything if len(layout_args) > 0: rendered_result = html.div(rendered_result, **layout_args) return rendered_result