provide (almost) automatic creation of type records in database
This commit is contained in:
parent
1e165a711c
commit
1bf5e82afc
2 changed files with 21 additions and 8 deletions
|
@ -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())
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Reference in a new issue