diff options
| author | Barry Warsaw | 2012-07-23 10:40:53 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2012-07-23 10:40:53 -0400 |
| commit | 5598b9eea196e4085aa91aaf8a0cacaffa200355 (patch) | |
| tree | d3685e9c193705ecee93bc573af960daff874e9e /src/mailman/database/sqlite.py | |
| parent | b2e4c6502c5ff4cdf9488be17556a6d39bbbde6b (diff) | |
| download | mailman-5598b9eea196e4085aa91aaf8a0cacaffa200355.tar.gz mailman-5598b9eea196e4085aa91aaf8a0cacaffa200355.tar.zst mailman-5598b9eea196e4085aa91aaf8a0cacaffa200355.zip | |
Diffstat (limited to 'src/mailman/database/sqlite.py')
| -rw-r--r-- | src/mailman/database/sqlite.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/mailman/database/sqlite.py b/src/mailman/database/sqlite.py index 2677d0d71..4e5df55a5 100644 --- a/src/mailman/database/sqlite.py +++ b/src/mailman/database/sqlite.py @@ -26,6 +26,8 @@ __all__ = [ import os +import shutil +import tempfile from urlparse import urlparse @@ -33,6 +35,16 @@ from mailman.database.base import StormBaseDatabase +class _TemporaryDB: + def __init__(self, database, tempdir): + self.database = database + self._tempdir = tempdir + + def cleanup(self): + shutil.rmtree(self._tempdir) + + + class SQLiteDatabase(StormBaseDatabase): """Database class for SQLite.""" @@ -41,7 +53,7 @@ class SQLiteDatabase(StormBaseDatabase): def _database_exists(self, store): """See `BaseDatabase`.""" table_query = 'select tbl_name from sqlite_master;' - table_names = set(item[0] for item in + table_names = set(item[0] for item in store.execute(table_query)) return 'version' in table_names @@ -54,3 +66,13 @@ class SQLiteDatabase(StormBaseDatabase): # Ignore errors if fd > 0: os.close(fd) + + @staticmethod + def _make_temporary(): + from mailman.testing.helpers import configuration + tempdir = tempfile.mkdtemp() + url = 'sqlite:///' + os.path.join(tempdir, 'mailman.db') + database = SQLiteDatabase() + with configuration('database', url=url): + database.initialize() + return _TemporaryDB(database, tempdir) |
