summaryrefslogtreecommitdiff
path: root/src/mailman/database/postgresql.py
diff options
context:
space:
mode:
authorBarry Warsaw2014-09-23 09:09:45 -0400
committerBarry Warsaw2014-09-23 09:09:45 -0400
commitea124d4fba3e94d0d8885d898500c9a06d7daad0 (patch)
tree8400340d122d3e19ef719ea01a29a2c68021db29 /src/mailman/database/postgresql.py
parent67315dbbeb781921c7eb530b996e1020ad84e91b (diff)
downloadmailman-ea124d4fba3e94d0d8885d898500c9a06d7daad0.tar.gz
mailman-ea124d4fba3e94d0d8885d898500c9a06d7daad0.tar.zst
mailman-ea124d4fba3e94d0d8885d898500c9a06d7daad0.zip
Diffstat (limited to 'src/mailman/database/postgresql.py')
-rw-r--r--src/mailman/database/postgresql.py51
1 files changed, 1 insertions, 50 deletions
diff --git a/src/mailman/database/postgresql.py b/src/mailman/database/postgresql.py
index bdc3c930c..59fff0865 100644
--- a/src/mailman/database/postgresql.py
+++ b/src/mailman/database/postgresql.py
@@ -22,32 +22,17 @@ from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
'PostgreSQLDatabase',
- 'make_temporary',
]
-import types
-
-from functools import partial
-from operator import attrgetter
-from urlparse import urlsplit, urlunsplit
-
from mailman.database.base import SABaseDatabase
-from mailman.testing.helpers import configuration
+from operator import attrgetter
class PostgreSQLDatabase(SABaseDatabase):
"""Database class for PostgreSQL."""
- def _database_exists(self, store):
- """See `BaseDatabase`."""
- table_query = ('SELECT table_name FROM information_schema.tables '
- "WHERE table_schema = 'public'")
- results = store.execute(table_query)
- table_names = set(item[0] for item in results)
- return 'version' in table_names
-
def _post_reset(self, store):
"""PostgreSQL-specific test suite cleanup.
@@ -67,37 +52,3 @@ class PostgreSQLDatabase(SABaseDatabase):
max("id") IS NOT null)
FROM "{0}";
""".format(model_class.__storm_table__))
-
-
-
-# Test suite adapter for ITemporaryDatabase.
-
-def _cleanup(self, store, tempdb_name):
- from mailman.config import config
- store.rollback()
- store.close()
- # From the original database connection, drop the now unused database.
- config.db.store.execute('DROP DATABASE {0}'.format(tempdb_name))
-
-
-def make_temporary(database):
- """Adapts by monkey patching an existing PostgreSQL IDatabase."""
- from mailman.config import config
- parts = urlsplit(config.database.url)
- assert parts.scheme == 'postgres'
- new_parts = list(parts)
- new_parts[2] = '/mmtest'
- url = urlunsplit(new_parts)
- # Use the existing database connection to create a new testing
- # database.
- config.db.store.execute('ABORT;')
- config.db.store.execute('CREATE DATABASE mmtest;')
- with configuration('database', url=url):
- database.initialize()
- database._cleanup = types.MethodType(
- partial(_cleanup, store=database.store, tempdb_name='mmtest'),
- database)
- # bool column values in PostgreSQL.
- database.FALSE = 'False'
- database.TRUE = 'True'
- return database