diff --git a/scopes/storage/concept.py b/scopes/storage/concept.py index 129bd05..daf7c94 100644 --- a/scopes/storage/concept.py +++ b/scopes/storage/concept.py @@ -17,6 +17,7 @@ class Concept(Track): class Concepts(Container): insertOnChange = False + indexes = None class Predicate(Concept): @@ -69,3 +70,15 @@ class Types(Concepts): itemFactory = Type indexes = [('name',), ('tprefix',)] tableName = 'types' + + +def storeType(storage, cls, name): + types = storage.create(Types) + types.save(Type(name, cls.prefix)) + storage.commit() + +def setupCoreTypes(storage): + for c in registry.values(): + cls = c.itemFactory + storeType(storage, cls, cls.__name__.lower()) + diff --git a/tests/tlib_storage.py b/tests/tlib_storage.py index a0b1056..1e05ba7 100644 --- a/tests/tlib_storage.py +++ b/tests/tlib_storage.py @@ -77,16 +77,16 @@ def test_folder(self, config): def test_type(self, config): storage = config.storageFactory(config.dbschema) storage.dropTable('types') - types = storage.create(concept.Types) - ttype = concept.Type('type', concept.Type.prefix) - ttid = types.save(ttype) - self.assertEqual(ttid, 1) - tps = list(ttype.values()) - self.assertEqual(len(tps), 1) + concept.setupCoreTypes(storage) - tfolder = concept.Type('folder', folder.Folder.prefix) - tfid = types.save(tfolder) + types = storage.getContainer(concept.Type.prefix) + tps = list(types.query()) + self.assertEqual(len(tps), 5) + self.assertEqual(tps[0].name, 'track') + + tfolder = types.queryLast(name='folder') fldrs = list(tfolder.values()) self.assertEqual(len(fldrs), 2) + self.assertEqual(fldrs[0].name, 'top') storage.commit()