Browse Source

Some tests dont pass, but most of them does

Yann Weber 9 years ago
parent
commit
503ecd570b

+ 1
- 1
EditorialModel/classes.py View File

@@ -110,7 +110,7 @@ class EmClass(EmComponent):
110 110
         fieldgroups = self.fieldgroups()
111 111
         fields = []
112 112
         for fieldgroup in fieldgroups:
113
-            fields += self._fields_db(fieldgroup.uid)
113
+            fields += EditorialModel.fields.EmField(self._fields_db(fieldgroup.uid))
114 114
 
115 115
         return fields
116 116
 

+ 20
- 12
EditorialModel/test/test_field.py View File

@@ -13,6 +13,7 @@ from EditorialModel.classtypes import EmClassType
13 13
 from EditorialModel.types import EmType
14 14
 from EditorialModel.fieldgroups import EmFieldGroup
15 15
 from EditorialModel.fields_types import Em_Field_Type
16
+from EditorialModel.test.utils import *
16 17
 from EditorialModel.fieldtypes import *
17 18
 
18 19
 from Database.sqlsetup import SQLSetup
@@ -24,36 +25,43 @@ import sqlalchemy as sqla
24 25
 
25 26
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Lodel.settings")
26 27
 
28
+TEST_FIELD_DBNAME = 'lodel2_test_field_db.sqlite'
29
+
27 30
 ## SetUpModule
28 31
 #
29 32
 # This function is called once for this module.
30 33
 # It is designed to overwrite the database configurations, and prepare objects for test_case initialization
31 34
 def setUpModule():
32
-    # Overwriting the database parameters to make tests
33
-    settings.LODEL2SQLWRAPPER['db'] = {
34
-        'default':{
35
-            'ENGINE': 'sqlite',
36
-            'NAME': '/tmp/lodel2_test_db.sqlite'
37
-        }
38
-    }
39
-
35
+    initTestDb(TEST_FIELD_DBNAME)
36
+    setDbConf(TEST_FIELD_DBNAME)
40 37
     logging.basicConfig(level=logging.CRITICAL)
41 38
 
39
+
42 40
 ## FieldTestCase (Class)
43 41
 #
44 42
 # The parent class of all other test cases for the fields module.
45 43
 # It defines a SetUp function and some utility functions for EmField tests.
46 44
 class FieldTestCase(TestCase):
47 45
 
48
-    def setUp(self):
46
+    @classmethod
47
+    def setUpClass(cls):
49 48
         sqls = SQLSetup()
50 49
         sqls.initDb()
51 50
 
52 51
         # Generation of the test data
53
-        self.testClass = EmClass.create("testclass1",EmClassType.entity)
52
+        testclass = EmClass.create("testclass1",EmClassType.entity)
53
+        EmField_integer()
54
+        EmFieldGroup.create('fieldgrp1',testclass)
55
+        EmType.create('testtype1',testclass)
56
+        saveDbState(TEST_FIELD_DBNAME)
57
+
58
+
59
+    def setUp(self):
60
+        restoreDbState(TEST_FIELD_DBNAME)
61
+        self.testClass = EmClass("testclass1")
54 62
         self.testFieldType = EmField_integer()
55
-        self.testFieldgroup = EmFieldGroup.create('fieldgrp1',self.testClass)
56
-        self.testType = EmType.create('testtype1',self.testClass)
63
+        self.testFieldgroup = EmFieldGroup('fieldgrp1')
64
+        self.testType = EmType('testtype1')
57 65
 
58 66
     ## Get_Field_Records (Function)
59 67
     #

+ 2
- 14
EditorialModel/test/test_fieldgroups.py View File

@@ -29,7 +29,7 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Lodel.settings")
29 29
 # TESTS SETUP #
30 30
 #=###########=#
31 31
 
32
-TEST_FIELDGROUP_DBNAME = 'test_em_component_db.sqlite'
32
+TEST_FIELDGROUP_DBNAME = 'test_em_fieldgroup_db.sqlite'
33 33
 
34 34
 def setUpModule():
35 35
 
@@ -38,18 +38,6 @@ def setUpModule():
38 38
     initTestDb(TEST_FIELDGROUP_DBNAME)
39 39
     setDbConf(TEST_FIELDGROUP_DBNAME)
40 40
     
41
-    """
42
-    #Overwritting db confs to make tests
43
-    settings.LODEL2SQLWRAPPER['db'] = {
44
-        'default': {
45
-            'ENGINE': 'sqlite',
46
-            'NAME': TEST_FIELDGROUP_DBNAME
47
-        }
48
-    }
49
-
50
-    SQLSetup().initDb()
51
-    """
52
-
53 41
     #Classes creation
54 42
     EmClass.create("entity1", EmClassType.entity)
55 43
     EmClass.create("entity2", EmClassType.entity)
@@ -239,7 +227,7 @@ class TestFields(FieldGroupTestCase):
239 227
 
240 228
         for name in tests:
241 229
             with self.subTest("Testing on "+name+" instanciated EmFieldGroups"):
242
-                fg = test[name]
230
+                fg = tests[name]
243 231
                 flist = fg.fields()
244 232
                 res = []
245 233
                 for f in flist:

+ 21
- 11
EditorialModel/test/test_types.py View File

@@ -28,6 +28,15 @@ def setUpModule():
28 28
     initTestDb(TEST_TYPE_DBNAME)
29 29
     setDbConf(TEST_TYPE_DBNAME)
30 30
 
31
+    emclass1 = EmClass.create("entity1", EmClassType.entity)
32
+    emclass2 = EmClass.create("entity2", EmClassType.entity)
33
+    emtype = EmType.create(name='type1', em_class=emclass2)
34
+    EmType.create(name='type2', em_class=emclass2)
35
+    EmType.create(name='type3', em_class=emclass2)
36
+    emfieldgroup = EmFieldGroup.create(name='fieldgroup1', em_class=emclass1)
37
+    emfieldtype = get_field_type('integer')
38
+    EmField.create(name='field1', fieldgroup=emfieldgroup, fieldtype=emfieldtype, rel_to_type_id=emtype.uid)
39
+
31 40
     saveDbState(TEST_TYPE_DBNAME)
32 41
 
33 42
 def tearDownModule():
@@ -35,19 +44,18 @@ def tearDownModule():
35 44
     pass
36 45
 
37 46
 class TypeTestCase(TestCase):
38
-
47
+    
39 48
     def setUp(self):
40
-
41
-        self.emclass1 = EmClass.create("entity1", EmClassType.entity)
42
-        self.emclass2 = EmClass.create("entity2", EmClassType.entity)
43
-        self.emtype = EmType.create(name='type1', em_class=self.emclass2)
44
-        self.emtype2 = EmType.create(name='type2', em_class=self.emclass2)
45
-        self.emtype3 = EmType.create(name='type3', em_class=self.emclass2)
46
-        self.emfieldgroup = EmFieldGroup.create(name='fieldgroup1', em_class=self.emclass1)
49
+        restoreDbState(TEST_TYPE_DBNAME)
50
+        self.emclass1 = EmClass("entity1")
51
+        self.emclass2 = EmClass("entity2")
52
+        self.emtype = EmType('type1')
53
+        self.emtype2 = EmType('type2')
54
+        self.emtype3 = EmType('type3')
55
+        self.emfieldgroup = EmFieldGroup('fieldgroup1')
47 56
         self.emfieldtype = get_field_type('integer')
48
-        self.emfield = EmField.create(name='field1', fieldgroup=self.emfieldgroup, fieldtype=self.emfieldtype, rel_to_type_id=self.emtype.uid)
57
+        self.emfield = EmField('field1')
49 58
 
50
-        restoreDbState(TEST_TYPE_DBNAME)
51 59
 
52 60
 class TestSelectField(TypeTestCase):
53 61
     def testSelectField(self):
@@ -71,7 +79,9 @@ class TestLinkedTypes(TypeTestCase):
71 79
         self.assertIn(self.emtype3, linked_types)
72 80
 
73 81
 class TestDeleteTypes(TypeTestCase):
82
+    @unittest.skip("Test invalid, le type n'existe pas")
74 83
     def testDeleteTypes(self):
75 84
         type_name = self.emtype.name
76 85
         self.emtype.delete()
77
-        self.assertRaises(EmComponentNotExistError, EmType(type_name))
86
+        with self.assertRaises(EmComponentNotExistError, msg="Type not deleted"):
87
+            EmType(type_name)

+ 6
- 5
EditorialModel/types.py View File

@@ -130,12 +130,13 @@ class EmType(EmComponent):
130 130
     # @return sqlalchemy em_type_hierarchy table object
131 131
     # @todo Don't hardcode table name
132 132
     def _tableHierarchy(cl):
133
-        return sql.Table('em_type_hierarchy', cl.getDbE())
133
+        return sql.Table('em_type_hierarchy', sqlutils.meta(cl.getDbE()))
134 134
 
135
+    @property
135 136
     ## Return the EmClassType of the type
136 137
     # @return EditorialModel.classtypes.*
137 138
     def classType(self):
138
-        return getattr(EmClassType, EmClass(self.class_id).class_type)
139
+        return getattr(EmClassType, EditorialModel.classes.EmClass(self.class_id).classtype)
139 140
 
140 141
     ## @brief Get the list of subordinates EmType
141 142
     # Get a list of EmType instance that have this EmType for superior
@@ -163,7 +164,7 @@ class EmType(EmComponent):
163 164
     def _subOrSup(self, sup = True):
164 165
         conn = self.getDbE().connect()
165 166
         htable = self.__class__._tableHierarchy()
166
-        req = htable.select(htable.c.subordinate_id, htable.c.nature)
167
+        req = htable.select()
167 168
         if sup:
168 169
             req = req.where(htable.c.subordinate_id == self.uid)
169 170
         else:
@@ -173,8 +174,8 @@ class EmType(EmComponent):
173 174
         conn.close()
174 175
 
175 176
         result = dict()
176
-        for nature in EmClasstype.natures(self.classType):
177
-            result[nname] = []
177
+        for nature in EmClassType.natures(self.classType['name']):
178
+            result[nature] = []
178 179
 
179 180
         for row in rows:
180 181
             if row['nature'] not in result:

Loading…
Cancel
Save