server/test/unittest_schemaserial.py
changeset 2447 b83fcc2311af
parent 2200 25bb65dc4559
child 2476 1294a6bdf3bf
equal deleted inserted replaced
2446:440cb4ea7e5c 2447:b83fcc2311af
    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):