Mercurial > kallithea
changeset 8674:30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Use cli_args to pass the test admin user information so it can be created the
usual way. This removes an unfortunate lib dependency on tests.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sat, 10 Oct 2020 19:59:54 +0200 |
parents | 3ccb302bb551 |
children | 3afc6bff84bb |
files | kallithea/bin/kallithea_cli_db.py kallithea/lib/db_manage.py kallithea/tests/fixture.py |
diffstat | 3 files changed, 39 insertions(+), 47 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/bin/kallithea_cli_db.py Sun Oct 11 17:47:18 2020 +0200 +++ b/kallithea/bin/kallithea_cli_db.py Sat Oct 10 19:59:54 2020 +0200 @@ -64,7 +64,7 @@ repo_root_path = dbmanage.prompt_repo_root_path(None) dbmanage.create_settings(repo_root_path) dbmanage.create_default_user() - dbmanage.admin_prompt() + dbmanage.create_admin_user() dbmanage.create_permissions() dbmanage.populate_default_permissions() Session().commit()
--- a/kallithea/lib/db_manage.py Sun Oct 11 17:47:18 2020 +0200 +++ b/kallithea/lib/db_manage.py Sat Oct 10 19:59:54 2020 +0200 @@ -26,6 +26,7 @@ :license: GPLv3, see LICENSE.md for more details. """ +import getpass import logging import os import sys @@ -128,53 +129,36 @@ log.info('Created tables for %s', self.dbname) - def admin_prompt(self, second=False): - if not self.tests: - import getpass + def create_admin_user(self): + username = self.cli_args.get('username') + password = self.cli_args.get('password') + email = self.cli_args.get('email') - username = self.cli_args.get('username') - password = self.cli_args.get('password') - email = self.cli_args.get('email') + def get_password(): + password = getpass.getpass('Specify admin password ' + '(min 6 chars):') + confirm = getpass.getpass('Confirm password:') - def get_password(): - password = getpass.getpass('Specify admin password ' - '(min 6 chars):') - confirm = getpass.getpass('Confirm password:') + if password != confirm: + log.error('passwords mismatch') + return False + if len(password) < 6: + log.error('password is to short use at least 6 characters') + return False - if password != confirm: - log.error('passwords mismatch') - return False - if len(password) < 6: - log.error('password is to short use at least 6 characters') - return False - - return password - if username is None: - username = input('Specify admin username:') - if password is None: + return password + if username is None: + username = input('Specify admin username:') + if password is None: + password = get_password() + if not password: + # second try password = get_password() if not password: - # second try - password = get_password() - if not password: - sys.exit() - if email is None: - email = input('Specify admin email:') - self.create_user(username, password, email, True) - else: - log.info('creating admin and regular test users') - from kallithea.tests.base import (TEST_USER_ADMIN_EMAIL, TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS, TEST_USER_REGULAR2_EMAIL, - TEST_USER_REGULAR2_LOGIN, TEST_USER_REGULAR2_PASS, TEST_USER_REGULAR_EMAIL, TEST_USER_REGULAR_LOGIN, - TEST_USER_REGULAR_PASS) - - self.create_user(TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS, - TEST_USER_ADMIN_EMAIL, True) - - self.create_user(TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, - TEST_USER_REGULAR_EMAIL, False) - - self.create_user(TEST_USER_REGULAR2_LOGIN, TEST_USER_REGULAR2_PASS, - TEST_USER_REGULAR2_EMAIL, False) + sys.exit() + if email is None: + email = input('Specify admin email:') + self.create_user(username, password, email, True) def create_auth_plugin_options(self, skip_existing=False): """
--- a/kallithea/tests/fixture.py Sun Oct 11 17:47:18 2020 +0200 +++ b/kallithea/tests/fixture.py Sat Oct 10 19:59:54 2020 +0200 @@ -41,8 +41,9 @@ from kallithea.model.scm import ScmModel from kallithea.model.user import UserModel from kallithea.model.user_group import UserGroupModel -from kallithea.tests.base import (GIT_REPO, HG_REPO, IP_ADDR, TEST_USER_ADMIN_EMAIL, TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN, TESTS_TMP_PATH, - invalidate_all_caches) +from kallithea.tests.base import (GIT_REPO, HG_REPO, IP_ADDR, TEST_USER_ADMIN_EMAIL, TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS, TEST_USER_REGULAR2_EMAIL, + TEST_USER_REGULAR2_LOGIN, TEST_USER_REGULAR2_PASS, TEST_USER_REGULAR_EMAIL, TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, + TESTS_TMP_PATH, invalidate_all_caches) log = logging.getLogger(__name__) @@ -365,12 +366,19 @@ os.makedirs(repos_test_path) dbmanage = DbManage(dbconf=dbconf, root=config['here'], - tests=True) + tests=True, + cli_args={ + 'username': TEST_USER_ADMIN_LOGIN, + 'password': TEST_USER_ADMIN_PASS, + 'email': TEST_USER_ADMIN_EMAIL, + }) dbmanage.create_tables(reuse_database=reuse_database) # for tests dynamically set new root paths based on generated content dbmanage.create_settings(dbmanage.prompt_repo_root_path(repos_test_path)) dbmanage.create_default_user() - dbmanage.admin_prompt() + dbmanage.create_admin_user() + dbmanage.create_user(TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, TEST_USER_REGULAR_EMAIL, False) + dbmanage.create_user(TEST_USER_REGULAR2_LOGIN, TEST_USER_REGULAR2_PASS, TEST_USER_REGULAR2_EMAIL, False) dbmanage.create_permissions() dbmanage.populate_default_permissions() Session().commit()