21 class Schema2RQLTC(TestCase): |
21 class Schema2RQLTC(TestCase): |
22 |
22 |
23 def test_eschema2rql1(self): |
23 def test_eschema2rql1(self): |
24 self.assertListEquals(list(eschema2rql(schema.eschema('CWAttribute'))), |
24 self.assertListEquals(list(eschema2rql(schema.eschema('CWAttribute'))), |
25 [ |
25 [ |
26 ('INSERT CWEType X: X description %(description)s,X final %(final)s,X meta %(meta)s,X name %(name)s', |
26 ('INSERT CWEType X: X description %(description)s,X final %(final)s,X name %(name)s', |
27 {'description': u'define a final relation: link a final relation type from a non final entity to a final entity type. used to build the application schema', |
27 {'description': u'define a final relation: link a final relation type from a non final entity to a final entity type. used to build the application schema', |
28 'meta': True, 'name': u'CWAttribute', 'final': False}) |
28 'name': u'CWAttribute', 'final': False}) |
29 ]) |
29 ]) |
30 |
30 |
31 def test_eschema2rql2(self): |
31 def test_eschema2rql2(self): |
32 self.assertListEquals(list(eschema2rql(schema.eschema('String'))), [ |
32 self.assertListEquals(list(eschema2rql(schema.eschema('String'))), [ |
33 ('INSERT CWEType X: X description %(description)s,X final %(final)s,X meta %(meta)s,X name %(name)s', |
33 ('INSERT CWEType X: X description %(description)s,X final %(final)s,X name %(name)s', |
34 {'description': u'', 'final': True, 'meta': True, 'name': u'String'})]) |
34 {'description': u'', 'final': True, 'name': u'String'})]) |
35 |
35 |
36 def test_eschema2rql_specialization(self): |
36 def test_eschema2rql_specialization(self): |
37 self.assertListEquals(list(specialize2rql(schema)), |
37 self.assertListEquals(list(specialize2rql(schema)), |
38 [ |
38 [ |
39 ('SET X specializes ET WHERE X name %(x)s, ET name %(et)s', |
39 ('SET X specializes ET WHERE X name %(x)s, ET name %(et)s', |
42 {'x': 'SubDivision', 'et': 'Division'})]) |
42 {'x': 'SubDivision', 'et': 'Division'})]) |
43 |
43 |
44 def test_rschema2rql1(self): |
44 def test_rschema2rql1(self): |
45 self.assertListEquals(list(rschema2rql(schema.rschema('relation_type'))), |
45 self.assertListEquals(list(rschema2rql(schema.rschema('relation_type'))), |
46 [ |
46 [ |
47 ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X meta %(meta)s,X name %(name)s,X symetric %(symetric)s', |
47 ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s', |
48 {'description': u'link a relation definition to its relation type', 'meta': True, 'symetric': False, 'name': u'relation_type', 'final' : False, 'fulltext_container': None, 'inlined': True}), |
48 {'description': u'link a relation definition to its relation type', 'symetric': False, 'name': u'relation_type', 'final' : False, 'fulltext_container': None, 'inlined': True}), |
49 |
49 |
50 ('INSERT CWRelation X: X cardinality %(cardinality)s,X composite %(composite)s,X description %(description)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', |
50 ('INSERT CWRelation X: X cardinality %(cardinality)s,X composite %(composite)s,X description %(description)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', |
51 {'rt': 'relation_type', 'description': u'', 'composite': u'object', 'oe': 'CWRType', |
51 {'rt': 'relation_type', 'description': u'', 'composite': u'object', 'oe': 'CWRType', |
52 'ordernum': 1, 'cardinality': u'1*', 'se': 'CWRelation'}), |
52 'ordernum': 1, 'cardinality': u'1*', 'se': 'CWRelation'}), |
53 ('INSERT CWConstraint X: X value %(value)s, X cstrtype CT, EDEF constrained_by X WHERE CT name %(ctname)s, EDEF relation_type ER, EDEF from_entity SE, EDEF to_entity OE, ER name %(rt)s, SE name %(se)s, OE name %(oe)s, EDEF is CWRelation', |
53 ('INSERT CWConstraint X: X value %(value)s, X cstrtype CT, EDEF constrained_by X WHERE CT name %(ctname)s, EDEF relation_type ER, EDEF from_entity SE, EDEF to_entity OE, ER name %(rt)s, SE name %(se)s, OE name %(oe)s, EDEF is CWRelation', |
61 ]) |
61 ]) |
62 |
62 |
63 def test_rschema2rql2(self): |
63 def test_rschema2rql2(self): |
64 self.assertListEquals(list(rschema2rql(schema.rschema('add_permission'))), |
64 self.assertListEquals(list(rschema2rql(schema.rschema('add_permission'))), |
65 [ |
65 [ |
66 ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X meta %(meta)s,X name %(name)s,X symetric %(symetric)s', {'description': u'core relation giving to a group the permission to add an entity or relation type', 'meta': True, 'symetric': False, 'name': u'add_permission', 'final': False, 'fulltext_container': None, 'inlined': False}), |
66 ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s', {'description': u'core relation giving to a group the permission to add an entity or relation type', 'symetric': False, 'name': u'add_permission', 'final': False, 'fulltext_container': None, 'inlined': False}), |
67 |
67 |
68 ('INSERT CWRelation X: X cardinality %(cardinality)s,X composite %(composite)s,X description %(description)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', |
68 ('INSERT CWRelation X: X cardinality %(cardinality)s,X composite %(composite)s,X description %(description)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', |
69 {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWEType'}), |
69 {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWEType'}), |
70 ('INSERT CWRelation X: X cardinality %(cardinality)s,X composite %(composite)s,X description %(description)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', |
70 ('INSERT CWRelation X: X cardinality %(cardinality)s,X composite %(composite)s,X description %(description)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', |
71 {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWRType'}), |
71 {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWRType'}), |
77 ]) |
77 ]) |
78 |
78 |
79 def test_rschema2rql3(self): |
79 def test_rschema2rql3(self): |
80 self.assertListEquals(list(rschema2rql(schema.rschema('cardinality'))), |
80 self.assertListEquals(list(rschema2rql(schema.rschema('cardinality'))), |
81 [ |
81 [ |
82 ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X meta %(meta)s,X name %(name)s,X symetric %(symetric)s', |
82 ('INSERT CWRType X: X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s', |
83 {'description': u'', 'meta': False, 'symetric': False, 'name': u'cardinality', 'final': True, 'fulltext_container': None, 'inlined': False}), |
83 {'description': u'', 'symetric': False, 'name': u'cardinality', 'final': True, 'fulltext_container': None, 'inlined': False}), |
84 |
84 |
85 ('INSERT CWAttribute X: X cardinality %(cardinality)s,X defaultval %(defaultval)s,X description %(description)s,X fulltextindexed %(fulltextindexed)s,X indexed %(indexed)s,X internationalizable %(internationalizable)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', |
85 ('INSERT CWAttribute X: X cardinality %(cardinality)s,X defaultval %(defaultval)s,X description %(description)s,X fulltextindexed %(fulltextindexed)s,X indexed %(indexed)s,X internationalizable %(internationalizable)s,X ordernum %(ordernum)s,X relation_type ER,X from_entity SE,X to_entity OE WHERE SE name %(se)s,ER name %(rt)s,OE name %(oe)s', |
86 {'rt': 'cardinality', 'description': u'subject/object cardinality', 'internationalizable': True, 'fulltextindexed': False, 'ordernum': 5, 'defaultval': None, 'indexed': False, 'cardinality': u'?1', 'oe': 'String', 'se': 'CWRelation'}), |
86 {'rt': 'cardinality', 'description': u'subject/object cardinality', 'internationalizable': True, 'fulltextindexed': False, 'ordernum': 5, 'defaultval': None, 'indexed': False, 'cardinality': u'?1', 'oe': 'String', 'se': 'CWRelation'}), |
87 ('INSERT CWConstraint X: X value %(value)s, X cstrtype CT, EDEF constrained_by X WHERE CT name %(ctname)s, EDEF relation_type ER, EDEF from_entity SE, EDEF to_entity OE, ER name %(rt)s, SE name %(se)s, OE name %(oe)s, EDEF is CWAttribute', |
87 ('INSERT CWConstraint X: X value %(value)s, X cstrtype CT, EDEF constrained_by X WHERE CT name %(ctname)s, EDEF relation_type ER, EDEF from_entity SE, EDEF to_entity OE, ER name %(rt)s, SE name %(se)s, OE name %(oe)s, EDEF is CWAttribute', |
88 {'rt': 'cardinality', 'oe': 'String', 'ctname': u'SizeConstraint', 'se': 'CWRelation', 'value': u'max=2'}), |
88 {'rt': 'cardinality', 'oe': 'String', 'ctname': u'SizeConstraint', 'se': 'CWRelation', 'value': u'max=2'}), |
98 ]) |
98 ]) |
99 |
99 |
100 |
100 |
101 def test_updateeschema2rql1(self): |
101 def test_updateeschema2rql1(self): |
102 self.assertListEquals(list(updateeschema2rql(schema.eschema('CWAttribute'))), |
102 self.assertListEquals(list(updateeschema2rql(schema.eschema('CWAttribute'))), |
103 [('SET X description %(description)s,X final %(final)s,X meta %(meta)s,X name %(name)s WHERE X is CWEType, X name %(et)s', |
103 [('SET X description %(description)s,X final %(final)s,X name %(name)s WHERE X is CWEType, X name %(et)s', |
104 {'description': u'define a final relation: link a final relation type from a non final entity to a final entity type. used to build the application schema', 'meta': True, 'et': 'CWAttribute', 'final': False, 'name': u'CWAttribute'}), |
104 {'description': u'define a final relation: link a final relation type from a non final entity to a final entity type. used to build the application schema', 'et': 'CWAttribute', 'final': False, 'name': u'CWAttribute'}), |
105 ]) |
105 ]) |
106 |
106 |
107 def test_updateeschema2rql2(self): |
107 def test_updateeschema2rql2(self): |
108 self.assertListEquals(list(updateeschema2rql(schema.eschema('String'))), |
108 self.assertListEquals(list(updateeschema2rql(schema.eschema('String'))), |
109 [('SET X description %(description)s,X final %(final)s,X meta %(meta)s,X name %(name)s WHERE X is CWEType, X name %(et)s', |
109 [('SET X description %(description)s,X final %(final)s,X name %(name)s WHERE X is CWEType, X name %(et)s', |
110 {'description': u'', 'meta': True, 'et': 'String', 'final': True, 'name': u'String'}) |
110 {'description': u'', 'et': 'String', 'final': True, 'name': u'String'}) |
111 ]) |
111 ]) |
112 |
112 |
113 def test_updaterschema2rql1(self): |
113 def test_updaterschema2rql1(self): |
114 self.assertListEquals(list(updaterschema2rql(schema.rschema('relation_type'))), |
114 self.assertListEquals(list(updaterschema2rql(schema.rschema('relation_type'))), |
115 [ |
115 [ |
116 ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X meta %(meta)s,X name %(name)s,X symetric %(symetric)s WHERE X is CWRType, X name %(rt)s', |
116 ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s WHERE X is CWRType, X name %(rt)s', |
117 {'rt': 'relation_type', 'symetric': False, |
117 {'rt': 'relation_type', 'symetric': False, |
118 'description': u'link a relation definition to its relation type', |
118 'description': u'link a relation definition to its relation type', |
119 'meta': True, 'final': False, 'fulltext_container': None, 'inlined': True, 'name': u'relation_type'}) |
119 'final': False, 'fulltext_container': None, 'inlined': True, 'name': u'relation_type'}) |
120 ]) |
120 ]) |
121 |
121 |
122 def test_updaterschema2rql2(self): |
122 def test_updaterschema2rql2(self): |
123 expected = [ |
123 expected = [ |
124 ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X meta %(meta)s,X name %(name)s,X symetric %(symetric)s WHERE X is CWRType, X name %(rt)s', |
124 ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symetric %(symetric)s WHERE X is CWRType, X name %(rt)s', |
125 {'rt': 'add_permission', 'symetric': False, |
125 {'rt': 'add_permission', 'symetric': False, |
126 'description': u'core relation giving to a group the permission to add an entity or relation type', |
126 'description': u'core relation giving to a group the permission to add an entity or relation type', |
127 'meta': True, 'final': False, 'fulltext_container': None, 'inlined': False, 'name': u'add_permission'}) |
127 'final': False, 'fulltext_container': None, 'inlined': False, 'name': u'add_permission'}) |
128 ] |
128 ] |
129 for i, (rql, args) in enumerate(updaterschema2rql(schema.rschema('add_permission'))): |
129 for i, (rql, args) in enumerate(updaterschema2rql(schema.rschema('add_permission'))): |
130 yield self.assertEquals, (rql, args), expected[i] |
130 yield self.assertEquals, (rql, args), expected[i] |
131 |
131 |
132 class Perms2RQLTC(TestCase): |
132 class Perms2RQLTC(TestCase): |