server/test/unittest_schemaserial.py
changeset 4191 01638461d4b0
parent 3978 2c95e3033f64
child 4467 0e73d299730a
equal deleted inserted replaced
4190:742e3eb16f81 4191:01638461d4b0
    14 config = TestServerConfiguration('data')
    14 config = TestServerConfiguration('data')
    15 config.bootstrap_cubes()
    15 config.bootstrap_cubes()
    16 schema = loader.load(config)
    16 schema = loader.load(config)
    17 
    17 
    18 from cubicweb.server.schemaserial import *
    18 from cubicweb.server.schemaserial import *
       
    19 from cubicweb.server.schemaserial import _erperms2rql as erperms2rql
    19 
    20 
    20 class Schema2RQLTC(TestCase):
    21 class Schema2RQLTC(TestCase):
    21 
    22 
    22     def test_eschema2rql1(self):
    23     def test_eschema2rql1(self):
    23         self.assertListEquals(list(eschema2rql(schema.eschema('CWAttribute'))),
    24         self.assertListEquals(list(eschema2rql(schema.eschema('CWAttribute'))),
    51             ('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 symetric %(symetric)s',
    52              {'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', 'symetric': False, 'name': u'relation_type', 'final' : False, 'fulltext_container': None, 'inlined': True}),
    53 
    54 
    54             ('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',
    55              {'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'}),
       
    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',
       
    59              {'rt': 'relation_type', 'oe': 'CWRType', 'ctname': u'RQLConstraint', 'se': 'CWAttribute', 'value': u';O;O final TRUE\n'}),
       
    60 
       
    61             ('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',
       
    62              {'rt': 'relation_type', 'description': u'', 'composite': u'object', 'oe': 'CWRType',
    56               'ordernum': 1, 'cardinality': u'1*', 'se': 'CWRelation'}),
    63               'ordernum': 1, 'cardinality': u'1*', 'se': 'CWRelation'}),
    57             ('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',
    64             ('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              {'rt': 'relation_type', 'oe': 'CWRType', 'ctname': u'RQLConstraint', 'se': 'CWRelation', 'value': u';O;O final FALSE\n'}),
    65              {'rt': 'relation_type', 'oe': 'CWRType', 'ctname': u'RQLConstraint', 'se': 'CWRelation', 'value': u';O;O final FALSE\n'}),
    59 
       
    60             ('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',
       
    61              {'rt': 'relation_type', 'description': u'', 'composite': u'object', 'oe': 'CWRType',
       
    62               'ordernum': 1, 'cardinality': u'1*', 'se': 'CWAttribute'}),
       
    63             ('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',
       
    64              {'rt': 'relation_type', 'oe': 'CWRType', 'ctname': u'RQLConstraint', 'se': 'CWAttribute', 'value': u';O;O final TRUE\n'}),
       
    65             ])
    66             ])
    66 
    67 
    67     def test_rschema2rql2(self):
    68     def test_rschema2rql2(self):
    68         self.assertListEquals(list(rschema2rql(schema.rschema('add_permission'))),
    69         self.assertListEquals(list(rschema2rql(schema.rschema('add_permission'))),
    69                               [
    70                               [
    70             ('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 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 
    72 
    72             ('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'}),
       
    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'}),
       
    77 
       
    78             ('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              {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWEType'}),
    79              {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWEType'}),
    74             ('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',
    80             ('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              {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWRType'}),
    81              {'rt': 'add_permission', 'description': u'rql expression allowing to add entities/relations of this type', 'composite': 'subject', 'oe': 'RQLExpression', 'ordernum': 5, 'cardinality': u'*?', 'se': 'CWEType'}),
    76 
    82 
    77             ('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',
    83             ('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',
    78              {'rt': 'add_permission', 'description': u'rql expression allowing to add entities/relations of this type', 'composite': 'subject', 'oe': 'RQLExpression', 'ordernum': 5, 'cardinality': u'*?', 'se': 'CWEType'}),
    84              {'rt': 'add_permission', 'description': u'groups allowed to add entities/relations of this type', 'composite': None, 'oe': 'CWGroup', 'ordernum': 3, 'cardinality': u'**', 'se': 'CWRelation'}),
    79             ('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',
    85             ('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',
    80              {'rt': 'add_permission', 'description': u'rql expression allowing to add entities/relations of this type', 'composite': 'subject', 'oe': 'RQLExpression', 'ordernum': 5, 'cardinality': u'*?', 'se': 'CWRType'}),
    86              {'rt': 'add_permission', 'description': u'rql expression allowing to add entities/relations of this type', 'composite': 'subject', 'oe': 'RQLExpression', 'ordernum': 5, 'cardinality': u'*?', 'se': 'CWRelation'}),
    81             ])
    87             ])
    82 
    88 
    83     def test_rschema2rql3(self):
    89     def test_rschema2rql3(self):
    84         self.assertListEquals(list(rschema2rql(schema.rschema('cardinality'))),
    90         self.assertListEquals(list(rschema2rql(schema.rschema('cardinality'))),
    85                              [
    91                              [
    86             ('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 symetric %(symetric)s',
    87              {'description': u'', 'symetric': False, 'name': u'cardinality', 'final': True, 'fulltext_container': None, 'inlined': False}),
    93              {'description': u'', 'symetric': False, 'name': u'cardinality', 'final': True, 'fulltext_container': None, 'inlined': False}),
    88 
    94 
    89             ('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'}),
       
    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'}),
       
    99             ('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',
       
   100              {'rt': 'cardinality', 'oe': 'String', 'ctname': u'StaticVocabularyConstraint', 'se': 'CWAttribute', 'value': u"u'?1', u'11'"}),
       
   101 
       
   102             ('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',
    90              {'rt': 'cardinality', 'description': u'subject/object cardinality', 'internationalizable': True, 'fulltextindexed': False, 'ordernum': 5, 'defaultval': None, 'indexed': False, 'cardinality': u'?1', 'oe': 'String', 'se': 'CWRelation'}),
   103              {'rt': 'cardinality', 'description': u'subject/object cardinality', 'internationalizable': True, 'fulltextindexed': False, 'ordernum': 5, 'defaultval': None, 'indexed': False, 'cardinality': u'?1', 'oe': 'String', 'se': 'CWRelation'}),
    91             ('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',
   104             ('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',
    92              {'rt': 'cardinality', 'oe': 'String', 'ctname': u'SizeConstraint', 'se': 'CWRelation', 'value': u'max=2'}),
   105              {'rt': 'cardinality', 'oe': 'String', 'ctname': u'SizeConstraint', 'se': 'CWRelation', 'value': u'max=2'}),
    93             ('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',
   106             ('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',
    94              {'rt': 'cardinality', 'oe': 'String', 'ctname': u'StaticVocabularyConstraint', 'se': 'CWRelation', 'value': u"u'?*', u'1*', u'+*', u'**', u'?+', u'1+', u'++', u'*+', u'?1', u'11', u'+1', u'*1', u'??', u'1?', u'+?', u'*?'"}),
   107              {'rt': 'cardinality', 'oe': 'String', 'ctname': u'StaticVocabularyConstraint', 'se': 'CWRelation', 'value': u"u'?*', u'1*', u'+*', u'**', u'?+', u'1+', u'++', u'*+', u'?1', u'11', u'+1', u'*1', u'??', u'1?', u'+?', u'*?'"}),
    95 
       
    96             ('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',
       
    97              {'rt': 'cardinality', 'description': u'subject/object cardinality', 'internationalizable': True, 'fulltextindexed': False, 'ordernum': 5, 'defaultval': None, 'indexed': False, 'cardinality': u'?1', 'oe': 'String', 'se': 'CWAttribute'}),
       
    98             ('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',
       
    99              {'rt': 'cardinality', 'oe': 'String', 'ctname': u'SizeConstraint', 'se': 'CWAttribute', 'value': u'max=2'}),
       
   100             ('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',
       
   101              {'rt': 'cardinality', 'oe': 'String', 'ctname': u'StaticVocabularyConstraint', 'se': 'CWAttribute', 'value': u"u'?1', u'11'"}),
       
   102             ])
   108             ])
   103 
   109 
   104 
   110 
   105     def test_updateeschema2rql1(self):
   111     def test_updateeschema2rql1(self):
   106         self.assertListEquals(list(updateeschema2rql(schema.eschema('CWAttribute'))),
   112         self.assertListEquals(list(updateeschema2rql(schema.eschema('CWAttribute'))),
   140         'guests': 2,
   146         'guests': 2,
   141         'owners': 3,
   147         'owners': 3,
   142         }
   148         }
   143 
   149 
   144     def test_eperms2rql1(self):
   150     def test_eperms2rql1(self):
   145         self.assertListEquals([rql for rql, kwargs in erperms2rql(schema.eschema('CWEType'), self.GROUP_MAPPING)],
   151         self.assertListEquals([(rql, kwargs) for rql, kwargs in erperms2rql(schema.eschema('CWEType'), self.GROUP_MAPPING)],
   146                               ['SET X read_permission Y WHERE X is CWEType, X name %(name)s, Y eid %(g)s',
   152                               [('SET X read_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   147                                'SET X read_permission Y WHERE X is CWEType, X name %(name)s, Y eid %(g)s',
   153                                ('SET X read_permission Y WHERE Y eid %(g)s, ', {'g': 1}),
   148                                'SET X read_permission Y WHERE X is CWEType, X name %(name)s, Y eid %(g)s',
   154                                ('SET X read_permission Y WHERE Y eid %(g)s, ', {'g': 2}),
   149                                'SET X add_permission Y WHERE X is CWEType, X name %(name)s, Y eid %(g)s',
   155                                ('SET X add_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   150                                'SET X update_permission Y WHERE X is CWEType, X name %(name)s, Y eid %(g)s',
   156                                ('SET X update_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   151                                'SET X update_permission Y WHERE X is CWEType, X name %(name)s, Y eid %(g)s',
   157                                ('SET X update_permission Y WHERE Y eid %(g)s, ', {'g': 3}),
   152                                'SET X delete_permission Y WHERE X is CWEType, X name %(name)s, Y eid %(g)s',
   158                                ('SET X delete_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   153                                ])
   159                                ])
   154 
   160 
   155     def test_rperms2rql2(self):
   161     def test_rperms2rql2(self):
   156         self.assertListEquals([rql for rql, kwargs in erperms2rql(schema.rschema('read_permission'), self.GROUP_MAPPING)],
   162         self.assertListEquals([(rql, kwargs) for rql, kwargs in erperms2rql(schema.rschema('read_permission').rdef('CWEType', 'CWGroup'), self.GROUP_MAPPING)],
   157                               ['SET X read_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   163                               [('SET X read_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   158                                'SET X read_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   164                                ('SET X read_permission Y WHERE Y eid %(g)s, ', {'g': 1}),
   159                                'SET X read_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   165                                ('SET X read_permission Y WHERE Y eid %(g)s, ', {'g': 2}),
   160                                'SET X add_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   166                                ('SET X add_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   161                                'SET X delete_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   167                                ('SET X delete_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   162                                ])
   168                                ])
   163 
   169 
   164     def test_rperms2rql3(self):
   170     def test_rperms2rql3(self):
   165         self.assertListEquals([rql for rql, kwargs in erperms2rql(schema.rschema('name'), self.GROUP_MAPPING)],
   171         self.assertListEquals([(rql, kwargs) for rql, kwargs in erperms2rql(schema.rschema('name').rdef('CWEType', 'String'), self.GROUP_MAPPING)],
   166                               ['SET X read_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   172                               [('SET X read_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   167                                'SET X read_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   173                                ('SET X read_permission Y WHERE Y eid %(g)s, ', {'g': 1}),
   168                                'SET X read_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   174                                ('SET X read_permission Y WHERE Y eid %(g)s, ', {'g': 2}),
   169                                'SET X add_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   175                                ('SET X add_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   170                                'SET X add_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   176                                ('SET X add_permission Y WHERE Y eid %(g)s, ', {'g': 1}),
   171                                'SET X add_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   177                                ('SET X delete_permission Y WHERE Y eid %(g)s, ', {'g': 0}),
   172                                'SET X delete_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
   178                                ('SET X delete_permission Y WHERE Y eid %(g)s, ', {'g': 1}),
   173                                'SET X delete_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
       
   174                                'SET X delete_permission Y WHERE X is CWRType, X name %(name)s, Y eid %(g)s',
       
   175                                ])
   179                                ])
   176 
   180 
   177     #def test_perms2rql(self):
   181     #def test_perms2rql(self):
   178     #    self.assertListEquals(perms2rql(schema, self.GROUP_MAPPING),
   182     #    self.assertListEquals(perms2rql(schema, self.GROUP_MAPPING),
   179     #                         ['INSERT CWEType X: X name 'Societe', X final FALSE'])
   183     #                         ['INSERT CWEType X: X name 'Societe', X final FALSE'])