def test_connection_string(self): self.assertEqual( 'postgresql://*****:*****@127.0.0.1:1111/db_name', db_utils.generate_connect_string( '127.0.0.1', 1111, 'db_name', 'test', 'my_pass', ))
def test_connection_string_dir(self): self.assertEqual( 'postgresql://*****:*****@/db_name?host=/var/run/postgresql', db_utils.generate_connect_string( '/var/run/postgresql', 5432, 'db_name', 'test', 'my_pass', ))
for entry in files + dirs: shutil.chown(os.path.join(root, entry), group=DAEMONCGI_GROUP) parser = argparse.ArgumentParser( description="Generate git repositories for a specific course and homework") parser.add_argument("--non-interactive", action='store_true', default=False) parser.add_argument("semester", help="semester") parser.add_argument("course", help="course code") parser.add_argument("repo_name", help="repository name") args = parser.parse_args() conn_string = db_utils.generate_connect_string( DATABASE_HOST, DATABASE_PORT, "submitty", DATABASE_USER, DATABASE_PASS, ) engine = create_engine(conn_string) connection = engine.connect() metadata = MetaData(bind=engine) courses_table = Table('courses', metadata, autoload=True) select = courses_table.select().where( courses_table.c.semester == bindparam('semester')).where( courses_table.c.course == bindparam('course')) course = connection.execute(select, semester=args.semester, course=args.course).fetchone()
def main(): args = parse_args() user_id = args.user_id conn_str = db_utils.generate_connect_string( DATABASE_HOST, DATABASE_PORT, "submitty", DATABASE_USER, DATABASE_PASS, ) engine = create_engine(conn_str) connection = engine.connect() metadata = MetaData(bind=engine) users_table = Table('users', metadata, autoload=True) select = users_table.select().where(users_table.c.user_id == bindparam('user_id')) user = connection.execute(select, user_id=user_id).fetchone() defaults = { 'user_firstname': None, 'user_preferred_firstname': None, 'user_lastname': None, 'user_email': None } if user is not None: print( 'User already exists! Hit enter on any question to use ' 'existing value for that field.' ) defaults = user firstname = get_input('User firstname', defaults['user_firstname']) preferred = get_input( 'User preferred name', defaults['user_preferred_firstname'], True ) lastname = get_input('User lastname', defaults['user_lastname']) email = get_input('User email', defaults['user_email'], True) update = { 'user_firstname': firstname, 'user_preferred_firstname': preferred, 'user_lastname': lastname, 'user_email': email } extra = "" if user is not None and AUTHENTICATION_METHOD == 'DatabaseAuthentication': extra = ' (Leave blank to use previous password)' while AUTHENTICATION_METHOD == 'DatabaseAuthentication': password = input('User password{}: '.format(extra)) if password != '': update['user_password'] = get_php_db_password(password) break elif user is not None and password == '': break if user is not None: query = users_table.update(values=update).where( users_table.c.user_id == bindparam('b_user_id') ) connection.execute(query, b_user_id=user_id) else: update['user_id'] = user_id query = users_table.insert() connection.execute(query, **update)
def main(): args = parse_args() user_id = args.user_id semester = args.semester course = args.course registration_section = args.registration_section conn_str = db_utils.generate_connect_string( DATABASE_HOST, DATABASE_PORT, "submitty", DATABASE_USER, DATABASE_PASS, ) engine = create_engine(conn_str) connection = engine.connect() metadata = MetaData(bind=engine) users_table = Table('users', metadata, autoload=True) select = users_table.select().where(users_table.c.user_id == bindparam('user_id')) user = connection.execute(select, user_id=user_id).fetchone() if user is None: print("User does not exist.", file=sys.stderr) return False courses_table = Table('courses', metadata, autoload=True) if registration_section and not registration_section.isdigit(): registration_section = None select = courses_table.select().where(and_( courses_table.c.semester == bindparam('semester'), courses_table.c.course == bindparam('course') )) row = connection.execute(select, semester=semester, course=course).fetchone() # course does not exist, so just skip this argument if row is None: print("Course does not exist.", file=sys.stderr) return False courses_u_table = Table('courses_users', metadata, autoload=True) select = courses_u_table.select().where(and_( and_( courses_u_table.c.semester == bindparam('semester'), courses_u_table.c.course == bindparam('course') ), courses_u_table.c.user_id == bindparam('user_id') )) row = connection.execute( select, semester=semester, course=course, user_id=user_id ).fetchone() # does this user have a row in courses_users for this semester and course? if row is None: query = courses_u_table.insert() connection.execute( query, user_id=user_id, semester=semester, course=course, user_group=1, registration_section=registration_section ) else: query = courses_u_table.update(values={ courses_u_table.c.registration_section: bindparam('registration_section') }).where(courses_u_table.c.user_id == bindparam('b_user_id')) connection.execute( query, b_user_id=user_id, registration_section=registration_section )