diff options
Diffstat (limited to 'src/mailman/database/sqlite.py')
| -rw-r--r-- | src/mailman/database/sqlite.py | 42 |
1 files changed, 3 insertions, 39 deletions
diff --git a/src/mailman/database/sqlite.py b/src/mailman/database/sqlite.py index b70e474cc..db7860390 100644 --- a/src/mailman/database/sqlite.py +++ b/src/mailman/database/sqlite.py @@ -22,63 +22,27 @@ from __future__ import absolute_import, print_function, unicode_literals __metaclass__ = type __all__ = [ 'SQLiteDatabase', - 'make_temporary', ] import os -import types -import shutil -import tempfile - -from functools import partial -from urlparse import urlparse from mailman.database.base import SABaseDatabase -from mailman.testing.helpers import configuration +from urlparse import urlparse class SQLiteDatabase(SABaseDatabase): """Database class for SQLite.""" - TAG = 'sqlite' - - def _database_exists(self, store): - """See `BaseDatabase`.""" - table_query = 'select tbl_name from sqlite_master;' - table_names = set(item[0] for item in - store.execute(table_query)) - return 'version' in table_names - def _prepare(self, url): parts = urlparse(url) assert parts.scheme == 'sqlite', ( 'Database url mismatch (expected sqlite prefix): {0}'.format(url)) + # Ensure that the SQLite database file has the proper permissions, + # since SQLite doesn't play nice with umask. path = os.path.normpath(parts.path) fd = os.open(path, os.O_WRONLY | os.O_NONBLOCK | os.O_CREAT, 0o666) # Ignore errors if fd > 0: os.close(fd) - - - -# Test suite adapter for ITemporaryDatabase. - -def _cleanup(self, tempdir): - shutil.rmtree(tempdir) - - -def make_temporary(database): - """Adapts by monkey patching an existing SQLite IDatabase.""" - tempdir = tempfile.mkdtemp() - url = 'sqlite:///' + os.path.join(tempdir, 'mailman.db') - with configuration('database', url=url): - database.initialize() - database._cleanup = types.MethodType( - partial(_cleanup, tempdir=tempdir), - database) - # bool column values in SQLite must be integers. - database.FALSE = 0 - database.TRUE = 1 - return database |
