server/test/unittest_schemaserial.py
changeset 4467 0e73d299730a
parent 4191 01638461d4b0
child 4680 8a6bee838464
equal deleted inserted replaced
4466:8b0ca7904820 4467:0e73d299730a
    47                                 {'et': 'Societe', 'x': 'Division'})])
    47                                 {'et': 'Societe', 'x': 'Division'})])
    48 
    48 
    49     def test_rschema2rql1(self):
    49     def test_rschema2rql1(self):
    50         self.assertListEquals(list(rschema2rql(schema.rschema('relation_type'))),
    50         self.assertListEquals(list(rschema2rql(schema.rschema('relation_type'))),
    51                              [
    51                              [
    52             ('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',
    52             ('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 symmetric %(symmetric)s',
    53              {'description': u'link a relation definition to its relation type', 'symetric': False, 'name': u'relation_type', 'final' : False, 'fulltext_container': None, 'inlined': True}),
    53              {'description': u'link a relation definition to its relation type', 'symmetric': False, 'name': u'relation_type', 'final' : False, 'fulltext_container': None, 'inlined': True}),
    54 
    54 
    55             ('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',
    55             ('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',
    56              {'rt': 'relation_type', 'description': u'', 'composite': u'object', 'oe': 'CWRType',
    56              {'rt': 'relation_type', 'description': u'', 'composite': u'object', 'oe': 'CWRType',
    57               'ordernum': 1, 'cardinality': u'1*', 'se': 'CWAttribute'}),
    57               'ordernum': 1, 'cardinality': u'1*', 'se': 'CWAttribute'}),
    58             ('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',
    58             ('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',
    66             ])
    66             ])
    67 
    67 
    68     def test_rschema2rql2(self):
    68     def test_rschema2rql2(self):
    69         self.assertListEquals(list(rschema2rql(schema.rschema('add_permission'))),
    69         self.assertListEquals(list(rschema2rql(schema.rschema('add_permission'))),
    70                               [
    70                               [
    71             ('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}),
    71             ('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 symmetric %(symmetric)s', {'description': u'core relation giving to a group the permission to add an entity or relation type', 'symmetric': False, 'name': u'add_permission', 'final': False, 'fulltext_container': None, 'inlined': False}),
    72 
    72 
    73             ('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',
    73             ('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',
    74              {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWAttribute'}),
    74              {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWAttribute'}),
    75             ('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',
    75             ('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',
    76              {'rt': 'add_permission', 'description': u'rql expression allowing to add entities/relations of this type', 'composite': 'subject', 'oe': 'RQLExpression', 'ordernum': 5, 'cardinality': u'*?', 'se': 'CWAttribute'}),
    76              {'rt': 'add_permission', 'description': u'rql expression allowing to add entities/relations of this type', 'composite': 'subject', 'oe': 'RQLExpression', 'ordernum': 5, 'cardinality': u'*?', 'se': 'CWAttribute'}),
    87             ])
    87             ])
    88 
    88 
    89     def test_rschema2rql3(self):
    89     def test_rschema2rql3(self):
    90         self.assertListEquals(list(rschema2rql(schema.rschema('cardinality'))),
    90         self.assertListEquals(list(rschema2rql(schema.rschema('cardinality'))),
    91                              [
    91                              [
    92             ('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',
    92             ('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 symmetric %(symmetric)s',
    93              {'description': u'', 'symetric': False, 'name': u'cardinality', 'final': True, 'fulltext_container': None, 'inlined': False}),
    93              {'description': u'', 'symmetric': False, 'name': u'cardinality', 'final': True, 'fulltext_container': None, 'inlined': False}),
    94 
    94 
    95             ('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',
    95             ('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',
    96              {'rt': 'cardinality', 'description': u'subject/object cardinality', 'internationalizable': True, 'fulltextindexed': False, 'ordernum': 5, 'defaultval': None, 'indexed': False, 'cardinality': u'?1', 'oe': 'String', 'se': 'CWAttribute'}),
    96              {'rt': 'cardinality', 'description': u'subject/object cardinality', 'internationalizable': True, 'fulltextindexed': False, 'ordernum': 5, 'defaultval': None, 'indexed': False, 'cardinality': u'?1', 'oe': 'String', 'se': 'CWAttribute'}),
    97             ('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',
    97             ('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',
    98              {'rt': 'cardinality', 'oe': 'String', 'ctname': u'SizeConstraint', 'se': 'CWAttribute', 'value': u'max=2'}),
    98              {'rt': 'cardinality', 'oe': 'String', 'ctname': u'SizeConstraint', 'se': 'CWAttribute', 'value': u'max=2'}),
   121                                ])
   121                                ])
   122 
   122 
   123     def test_updaterschema2rql1(self):
   123     def test_updaterschema2rql1(self):
   124         self.assertListEquals(list(updaterschema2rql(schema.rschema('relation_type'))),
   124         self.assertListEquals(list(updaterschema2rql(schema.rschema('relation_type'))),
   125                              [
   125                              [
   126             ('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',
   126             ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symmetric %(symmetric)s WHERE X is CWRType, X name %(rt)s',
   127              {'rt': 'relation_type', 'symetric': False,
   127              {'rt': 'relation_type', 'symmetric': False,
   128               'description': u'link a relation definition to its relation type',
   128               'description': u'link a relation definition to its relation type',
   129               'final': False, 'fulltext_container': None, 'inlined': True, 'name': u'relation_type'})
   129               'final': False, 'fulltext_container': None, 'inlined': True, 'name': u'relation_type'})
   130             ])
   130             ])
   131 
   131 
   132     def test_updaterschema2rql2(self):
   132     def test_updaterschema2rql2(self):
   133         expected = [
   133         expected = [
   134             ('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',
   134             ('SET X description %(description)s,X final %(final)s,X fulltext_container %(fulltext_container)s,X inlined %(inlined)s,X name %(name)s,X symmetric %(symmetric)s WHERE X is CWRType, X name %(rt)s',
   135              {'rt': 'add_permission', 'symetric': False,
   135              {'rt': 'add_permission', 'symmetric': False,
   136               'description': u'core relation giving to a group the permission to add an entity or relation type',
   136               'description': u'core relation giving to a group the permission to add an entity or relation type',
   137               'final': False, 'fulltext_container': None, 'inlined': False, 'name': u'add_permission'})
   137               'final': False, 'fulltext_container': None, 'inlined': False, 'name': u'add_permission'})
   138             ]
   138             ]
   139         for i, (rql, args) in enumerate(updaterschema2rql(schema.rschema('add_permission'))):
   139         for i, (rql, args) in enumerate(updaterschema2rql(schema.rschema('add_permission'))):
   140             yield self.assertEquals, (rql, args), expected[i]
   140             yield self.assertEquals, (rql, args), expected[i]