def test_set_search_path(self): admin = Expect(creds) try: databases = ['orig_db'] for db in databases: admin.execute("CREATE DATABASE %s;" % db, True) admin.execute_template( "sql/original_db_prep.sql", APP_DATABASE=db, POSTGRES_APP_USERNAME='******' % db, POSTGRES_APP_PASSWORD=Expect.TMP_PASSWORD) admin_on_db = Expect({**creds, **{"PGDATABASE": db}}) admin_on_db.execute_template( "sql/original_db_setup.sql", APP_DATABASE=db, WORKSPACE=db, POSTGRES_APP_PASSWORD=Expect.TMP_PASSWORD) admin_on_db.execute_template("sql/original_db_user_setup.sql", WORKSPACE=db, USER='******' % db, PASSWORD=Expect.TMP_PASSWORD) admin_on_db.close() admin.execute( "ALTER DATABASE %s SET search_path = working_data" % db, True) enduser_on_db = Expect({ **creds, **{ "PGDATABASE": db, "PGUSER": "******" % db, "PGPASSWORD": Expect.TMP_PASSWORD } }) enduser_on_db.match_results( 'sql/query_search_path.sql', 'results/test_set_search_path/results.txt') enduser_on_db.close() finally: admin.close()
def test_simple_user_creating_database(self): admin = Expect(creds) try: user = '******' admin.execute('show search_path') admin.execute_template("sql/original_db_prep.sql", POSTGRES_APP_USERNAME=user, POSTGRES_APP_PASSWORD=Expect.TMP_PASSWORD) admin.execute("ALTER USER %s CREATEDB" % user, True) enduser_on_db = Expect({ **creds, **{ "PGUSER": user, "PGPASSWORD": Expect.TMP_PASSWORD } }) db = "temp_db" try: enduser_on_db.execute("CREATE DATABASE %s" % db, True) finally: enduser_on_db.execute("DROP ROLE %s_contribute" % db, False) enduser_on_db.execute("DROP ROLE %s_readonly" % db, False) enduser_on_db.execute("DROP DATABASE %s" % db, False) enduser_on_db.close() finally: admin.close()