|
@@ -1,6 +1,8 @@
|
1
|
1
|
#-*- coding: utf-8 -*-
|
2
|
2
|
|
3
|
3
|
import unittest
|
|
4
|
+import random
|
|
5
|
+
|
4
|
6
|
from lodel.editorial_model.model import EditorialModel
|
5
|
7
|
from lodel.leapi import lefactory
|
6
|
8
|
|
|
@@ -20,7 +22,7 @@ class LeFactoryTestCase(unittest.TestCase):
|
20
|
22
|
cls3 = model.new_class('testclass3', parents = [cls2])
|
21
|
23
|
cls4 = model.new_class('testclass4', parents = [cls1, cls3])
|
22
|
24
|
cls5 = model.new_class('testclass5', parents = [cls4])
|
23
|
|
- cls6 = model.new_class('testclass6')
|
|
25
|
+ cls6 = model.new_class('testclass6', parents = [cls5])
|
24
|
26
|
|
25
|
27
|
cls1.new_field('testfield1', data_handler='varchar')
|
26
|
28
|
cls1.new_field('testfield2', data_handler='varchar', nullable = True)
|
|
@@ -35,12 +37,13 @@ class LeFactoryTestCase(unittest.TestCase):
|
35
|
37
|
def test_emclass_sorted_by_deps(self):
|
36
|
38
|
""" Test the function that sort EmClass by dependencies """
|
37
|
39
|
cls_list = self.model.classes()
|
38
|
|
- sorted_cls = lefactory.emclass_sorted_by_deps(cls_list)
|
39
|
|
- seen = set() # Stores the EmClass allready seen will walking through array
|
40
|
40
|
|
41
|
|
- for _ in range(10): #Bad sorts algorithm can have random behavior
|
|
41
|
+ for _ in range(100): #Bad sorts algorithm can have random behavior
|
|
42
|
+ random.shuffle(cls_list)
|
|
43
|
+ sorted_cls = lefactory.emclass_sorted_by_deps(cls_list)
|
|
44
|
+ seen = set() # Stores the EmClass allready seen will walking through array
|
42
|
45
|
for emclass in sorted_cls:
|
43
|
|
- for parent in emclass.parents:
|
|
46
|
+ for parent in emclass.parents_recc:
|
44
|
47
|
self.assertIn(parent, seen)
|
45
|
48
|
seen |= set((emclass,))
|
46
|
49
|
|