Exemple #1
0
    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()
Exemple #2
0
    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()