Mailman: create a HK DB for unit testing
This commit is contained in:
parent
2f9b7871ea
commit
960d87f8ca
2 changed files with 19 additions and 6 deletions
|
@ -99,6 +99,8 @@
|
||||||
- mailman
|
- mailman
|
||||||
- hyperkitty
|
- hyperkitty
|
||||||
- kittystore
|
- kittystore
|
||||||
|
- name: test database creation
|
||||||
|
postgresql_db: name=test_hyperkitty owner=hyperkittyadmin encoding=UTF-8
|
||||||
|
|
||||||
|
|
||||||
# Real MM/HK-specific work
|
# Real MM/HK-specific work
|
||||||
|
|
|
@ -14,32 +14,34 @@ import yaml
|
||||||
import psycopg2
|
import psycopg2
|
||||||
|
|
||||||
|
|
||||||
def give_rights(dbhost, dbuser, dbpasswd, dbname):
|
def give_rights(dbhost, dbuser, dbpasswd, dbname, dbreguser=None):
|
||||||
|
if dbreguser is None:
|
||||||
|
dbreguser = dbname + "app"
|
||||||
conn = psycopg2.connect(host=dbhost, user=dbuser, password=dbpasswd,
|
conn = psycopg2.connect(host=dbhost, user=dbuser, password=dbpasswd,
|
||||||
database=dbname)
|
database=dbname)
|
||||||
cur = conn.cursor()
|
cur = conn.cursor()
|
||||||
# Database permissions
|
# Database permissions
|
||||||
dbrightsquery = "GRANT CONNECT,TEMP ON DATABASE %s TO %sapp;" % (dbname, dbname)
|
dbrightsquery = "GRANT CONNECT,TEMP ON DATABASE %s TO %s;" % (dbname, dbreguser)
|
||||||
print dbrightsquery
|
print dbrightsquery
|
||||||
cur.execute(dbrightsquery)
|
cur.execute(dbrightsquery)
|
||||||
# Table permissions
|
# Table permissions
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
SELECT 'GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE ON "' || relname || '" TO %sapp;'
|
SELECT 'GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE ON "' || relname || '" TO %s;'
|
||||||
FROM pg_class
|
FROM pg_class
|
||||||
JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
|
JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
|
||||||
WHERE nspname = 'public' AND relkind IN ('r', 'v');
|
WHERE nspname = 'public' AND relkind IN ('r', 'v');
|
||||||
""" % dbname)
|
""" % dbreguser)
|
||||||
queries = [ q[0] for q in cur ]
|
queries = [ q[0] for q in cur ]
|
||||||
for query in queries:
|
for query in queries:
|
||||||
print query
|
print query
|
||||||
cur.execute(query)
|
cur.execute(query)
|
||||||
# Sequence permissions
|
# Sequence permissions
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
SELECT 'GRANT USAGE,SELECT,UPDATE ON ' || relname || ' TO %sapp;'
|
SELECT 'GRANT USAGE,SELECT,UPDATE ON ' || relname || ' TO %s;'
|
||||||
FROM pg_class
|
FROM pg_class
|
||||||
JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
|
JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
|
||||||
WHERE nspname = 'public' AND relkind = 'S';
|
WHERE nspname = 'public' AND relkind = 'S';
|
||||||
""" % dbname)
|
""" % dbreguser)
|
||||||
queries = [ q[0] for q in cur ]
|
queries = [ q[0] for q in cur ]
|
||||||
for query in queries:
|
for query in queries:
|
||||||
print query
|
print query
|
||||||
|
@ -80,5 +82,14 @@ def main():
|
||||||
settings_admin.DATABASES["default"]["NAME"],
|
settings_admin.DATABASES["default"]["NAME"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# HyperKitty unit test database
|
||||||
|
give_rights(
|
||||||
|
settings_admin.DATABASES["default"]["HOST"],
|
||||||
|
settings_admin.DATABASES["default"]["USER"],
|
||||||
|
settings_admin.DATABASES["default"]["PASSWORD"],
|
||||||
|
"test_" + settings_admin.DATABASES["default"]["NAME"],
|
||||||
|
settings_admin.DATABASES["default"]["NAME"] + "app",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__": main()
|
if __name__ == "__main__": main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue