diff --git a/scopes/storage/common.py b/scopes/storage/common.py index 897ecc0..62d479f 100644 --- a/scopes/storage/common.py +++ b/scopes/storage/common.py @@ -52,8 +52,8 @@ class Storage(object): return metadata.tables.get((schema and schema + '.' or '') + tableName) def dropTable(self, tableName): + prefix = self.schema and self.schema + '.' or '' with self.engine.begin() as conn: - prefix = self.schema and self.schema + '.' or '' conn.execute(text('drop table if exists %s%s' % (prefix, tableName))) def resetSequence(self, tableName, colName, v): @@ -63,7 +63,7 @@ class Storage(object): conn.execute(text(sq)) -class StorageFactory(object): +class StorageFactory: def sessionFactory(self): return self.engine.connect diff --git a/scopes/storage/message.py b/scopes/storage/message.py index 309231e..8990318 100644 --- a/scopes/storage/message.py +++ b/scopes/storage/message.py @@ -5,6 +5,7 @@ from scopes.storage.common import registerContainerClass from scopes.storage.tracking import Container, Track + class Message(Track): headFields = ['domain', 'action', 'class', 'item'] diff --git a/scopes/tests/test_postgres.py b/scopes/tests/test_postgres.py index f946931..67eac01 100644 --- a/scopes/tests/test_postgres.py +++ b/scopes/tests/test_postgres.py @@ -32,6 +32,9 @@ class Test(unittest.TestCase): def test_004_topic(self): tlib_storage.test_topic(self, config) + def test_005_message(self): + tlib_storage.test_message(self, config) + def test_suite(): return unittest.TestSuite(( unittest.TestLoader().loadTestsFromTestCase(Test), diff --git a/scopes/tests/tlib_storage.py b/scopes/tests/tlib_storage.py index a993bce..63c9464 100644 --- a/scopes/tests/tlib_storage.py +++ b/scopes/tests/tlib_storage.py @@ -3,7 +3,7 @@ """Test implementation for the `scopes.storage` package.""" from datetime import datetime -from scopes.storage import concept, folder, topic, tracking +from scopes.storage import concept, folder, message, topic, tracking def test_tracking(self, config): @@ -82,7 +82,7 @@ def test_type(self, config): concept.setupCoreTypes(storage) types = storage.getContainer(concept.Type) tps = list(types.query()) - self.assertEqual(len(tps), 6) + self.assertEqual(len(tps), 7) tfolder = types.queryLast(name='folder') fldrs = list(tfolder.values()) @@ -121,4 +121,13 @@ def test_topic(self, config): self.assertEqual(c[0].name, 'prog_lang') storage.commit() - + + +def test_message(self, config): + storage = config.storageFactory(config.dbschema) + storage.dropTable('messages') + tracks = storage.create(message.Messages) + + storage.commit() + +