1117 FROM is_relation AS rel_is0 |
1117 FROM is_relation AS rel_is0 |
1118 WHERE rel_is0.eid_to=2'''), |
1118 WHERE rel_is0.eid_to=2'''), |
1119 |
1119 |
1120 ] |
1120 ] |
1121 from logilab.common.adbh import ADV_FUNC_HELPER_DIRECTORY |
1121 from logilab.common.adbh import ADV_FUNC_HELPER_DIRECTORY |
|
1122 |
|
1123 class CWRQLTC(RQLGeneratorTC): |
|
1124 schema = schema |
|
1125 |
|
1126 def test_nonregr_sol(self): |
|
1127 delete = self.rqlhelper.parse( |
|
1128 'DELETE X read_permission READ_PERMISSIONSUBJECT,X add_permission ADD_PERMISSIONSUBJECT,' |
|
1129 'X in_basket IN_BASKETSUBJECT,X delete_permission DELETE_PERMISSIONSUBJECT,' |
|
1130 'X initial_state INITIAL_STATESUBJECT,X update_permission UPDATE_PERMISSIONSUBJECT,' |
|
1131 'X created_by CREATED_BYSUBJECT,X is ISSUBJECT,X is_instance_of IS_INSTANCE_OFSUBJECT,' |
|
1132 'X owned_by OWNED_BYSUBJECT,X specializes SPECIALIZESSUBJECT,ISOBJECT is X,' |
|
1133 'SPECIALIZESOBJECT specializes X,STATE_OFOBJECT state_of X,IS_INSTANCE_OFOBJECT is_instance_of X,' |
|
1134 'TO_ENTITYOBJECT to_entity X,TRANSITION_OFOBJECT transition_of X,FROM_ENTITYOBJECT from_entity X ' |
|
1135 'WHERE X is CWEType') |
|
1136 self.rqlhelper.compute_solutions(delete) |
|
1137 def var_sols(var): |
|
1138 s = set() |
|
1139 for sol in delete.solutions: |
|
1140 s.add(sol.get(var)) |
|
1141 return s |
|
1142 self.assertEquals(var_sols('FROM_ENTITYOBJECT'), set(('CWAttribute', 'CWRelation'))) |
|
1143 self.assertEquals(var_sols('FROM_ENTITYOBJECT'), delete.defined_vars['FROM_ENTITYOBJECT'].stinfo['possibletypes']) |
|
1144 self.assertEquals(var_sols('ISOBJECT'), |
|
1145 set(x.type for x in self.schema.entities() if not x.is_final())) |
|
1146 self.assertEquals(var_sols('ISOBJECT'), delete.defined_vars['ISOBJECT'].stinfo['possibletypes']) |
|
1147 |
1122 |
1148 |
1123 class PostgresSQLGeneratorTC(RQLGeneratorTC): |
1149 class PostgresSQLGeneratorTC(RQLGeneratorTC): |
1124 schema = schema |
1150 schema = schema |
1125 |
1151 |
1126 #capture = True |
1152 #capture = True |