summaryrefslogtreecommitdiff
path: root/src/mailman/interfaces/database.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/interfaces/database.py')
-rw-r--r--src/mailman/interfaces/database.py34
1 files changed, 26 insertions, 8 deletions
diff --git a/src/mailman/interfaces/database.py b/src/mailman/interfaces/database.py
index 0530f83b9..1f39daee7 100644
--- a/src/mailman/interfaces/database.py
+++ b/src/mailman/interfaces/database.py
@@ -17,16 +17,18 @@
"""Interfaces for database interaction."""
-from __future__ import absolute_import, unicode_literals
+from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
'DatabaseError',
'IDatabase',
+ 'IDatabaseFactory',
+ 'ITemporaryDatabase',
]
-from zope.interface import Interface
+from zope.interface import Attribute, Interface
from mailman.interfaces.errors import MailmanError
@@ -49,12 +51,6 @@ class IDatabase(Interface):
configuration file setting.
"""
- def _reset():
- """Reset the database to its pristine state.
-
- This is only used by the test framework.
- """
-
def begin():
"""Begin the current transaction."""
@@ -63,3 +59,25 @@ class IDatabase(Interface):
def abort():
"""Abort the current transaction."""
+
+ store = Attribute(
+ """The underlying Storm store on which you can do queries.""")
+
+
+
+class ITemporaryDatabase(Interface):
+ """Marker interface for test suite adaptation."""
+
+
+
+class IDatabaseFactory(Interface):
+ "Interface for creating new databases."""
+
+ def create():
+ """Return a new `IDatabase`.
+
+ The database will be initialized and all migrations will be loaded.
+
+ :return: A new database.
+ :rtype: IDatabase
+ """