3
0
Fork 0

fix: add db.util.make_topo_sortkey() function

This commit is contained in:
Lance Edgar 2024-12-03 21:53:30 -06:00
parent c3aa97ed27
commit d95b101dbf
2 changed files with 39 additions and 0 deletions

View file

@ -11,6 +11,7 @@ try:
from wuttjamaican.db import util as mod
from wuttjamaican.db.model.base import Setting
from wuttjamaican.util import make_true_uuid
from wuttjamaican.testing import DataTestCase
except ImportError:
pass
else:
@ -124,3 +125,17 @@ else:
self.assertIsInstance(column, sa.Column)
self.assertIsInstance(column.type, sa.String)
self.assertEqual(column.type.length, 32)
class TestMakeTopoSortkey(DataTestCase):
def test_basic(self):
model = self.app.model
sortkey = mod.make_topo_sortkey(model)
original = ['User', 'Person', 'UserRole', 'Role']
# models are sorted so dependants come later
result = sorted(original, key=sortkey)
self.assertTrue(result.index('Role') < result.index('UserRole'))
self.assertTrue(result.index('User') < result.index('UserRole'))
self.assertTrue(result.index('Person') < result.index('User'))