Mercurial > public > src > rhodecode
diff pylons_app/lib/db_manage.py @ 501:7c978511c951
implemented basic (startup) nose test suite.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 05 Sep 2010 16:20:29 +0200 |
parents | 3ed2d46a2ca7 |
children | ac559565c6b8 |
line wrap: on
line diff
--- a/pylons_app/lib/db_manage.py Sun Sep 05 13:55:47 2010 +0200 +++ b/pylons_app/lib/db_manage.py Sun Sep 05 16:20:29 2010 +0200 @@ -43,8 +43,9 @@ log = logging.getLogger(__name__) class DbManage(object): - def __init__(self, log_sql): - self.dbname = 'hg_app.db' + def __init__(self, log_sql, dbname,tests=False): + self.dbname = dbname + self.tests = tests dburi = 'sqlite:////%s' % jn(ROOT, self.dbname) engine = create_engine(dburi, echo=log_sql) init_model(engine) @@ -66,7 +67,10 @@ self.check_for_db(override) if override: log.info("database exisist and it's going to be destroyed") - destroy = ask_ok('Are you sure to destroy old database ? [y/n]') + if self.tests: + destroy=True + else: + destroy = ask_ok('Are you sure to destroy old database ? [y/n]') if not destroy: sys.exit() if self.db_exists and destroy: @@ -76,19 +80,29 @@ log.info('Created tables for %s', self.dbname) def admin_prompt(self): - import getpass - username = raw_input('Specify admin username:') - password = getpass.getpass('Specify admin password:') - self.create_user(username, password, True) + if not self.tests: + import getpass + username = raw_input('Specify admin username:') + password = getpass.getpass('Specify admin password:') + self.create_user(username, password, True) + else: + log.info('creating admin and regular test users') + self.create_user('test_admin', 'test', True) + self.create_user('test_regular', 'test', False) + + - def config_prompt(self): + def config_prompt(self,test_repo_path=''): log.info('Setting up repositories config') - path = raw_input('Specify valid full path to your repositories' + if not self.tests and not test_repo_path: + path = raw_input('Specify valid full path to your repositories' ' you can change this later in application settings:') - + else: + path = test_repo_path + if not os.path.isdir(path): - log.error('You entered wrong path') + log.error('You entered wrong path: %s',path) sys.exit() hooks1 = HgAppUi() @@ -153,18 +167,6 @@ log.info('created ui config') def create_user(self, username, password, admin=False): - - log.info('creating default user') - #create default user for handling default permissions. - def_user = User() - def_user.username = 'default' - def_user.password = get_crypt_password(str(uuid.uuid1())[:8]) - def_user.name = 'default' - def_user.lastname = 'default' - def_user.email = 'default@default.com' - def_user.admin = False - def_user.active = False - log.info('creating administrator user %s', username) new_user = User() new_user.username = username @@ -176,8 +178,25 @@ new_user.active = True try: + self.sa.add(new_user) + self.sa.commit() + except: + self.sa.rollback() + raise + + def create_default_user(self): + log.info('creating default user') + #create default user for handling default permissions. + def_user = User() + def_user.username = 'default' + def_user.password = get_crypt_password(str(uuid.uuid1())[:8]) + def_user.name = 'default' + def_user.lastname = 'default' + def_user.email = 'default@default.com' + def_user.admin = False + def_user.active = False + try: self.sa.add(def_user) - self.sa.add(new_user) self.sa.commit() except: self.sa.rollback()