devtools/repotest.py
changeset 9448 3e7cad3967c5
parent 9445 65d93a4fd11c
child 9452 5308b3fe03c9
equal deleted inserted replaced
9447:0636c4960259 9448:3e7cad3967c5
   380         except AttributeError:
   380         except AttributeError:
   381             return (something[0].r_type, something[1])
   381             return (something[0].r_type, something[1])
   382     return _orig_select_principal(scope, relations,
   382     return _orig_select_principal(scope, relations,
   383                                   _sort=lambda rels: sorted(rels, key=sort_key))
   383                                   _sort=lambda rels: sorted(rels, key=sort_key))
   384 
   384 
   385 try:
       
   386     from cubicweb.server.msplanner import PartPlanInformation
       
   387 except ImportError:
       
   388     class PartPlanInformation(object):
       
   389         def merge_input_maps(self, *args, **kwargs):
       
   390             pass
       
   391         def _choose_term(self, sourceterms):
       
   392             pass
       
   393 _orig_merge_input_maps = PartPlanInformation.merge_input_maps
       
   394 _orig_choose_term = PartPlanInformation._choose_term
       
   395 
   385 
   396 def _merge_input_maps(*args, **kwargs):
   386 def _merge_input_maps(*args, **kwargs):
   397     return sorted(_orig_merge_input_maps(*args, **kwargs))
   387     return sorted(_orig_merge_input_maps(*args, **kwargs))
   398 
   388 
   399 def _choose_term(self, source, sourceterms):
   389 def _choose_term(self, source, sourceterms):
   409             except AttributeError:
   399             except AttributeError:
   410                 # const
   400                 # const
   411                 return x.value
   401                 return x.value
   412     return _orig_choose_term(self, source, DumbOrderedDict2(sourceterms, get_key))
   402     return _orig_choose_term(self, source, DumbOrderedDict2(sourceterms, get_key))
   413 
   403 
   414 
       
   415 def _ordered_iter_relations(stinfo):
   404 def _ordered_iter_relations(stinfo):
   416     return sorted(_orig_iter_relations(stinfo), key=lambda x:x.r_type)
   405     return sorted(_orig_iter_relations(stinfo), key=lambda x:x.r_type)
   417 
   406 
   418 def do_monkey_patch():
   407 def do_monkey_patch():
   419     rqlrewrite.iter_relations = _ordered_iter_relations
   408     rqlrewrite.iter_relations = _ordered_iter_relations
   420     rqlrewrite.RQLRewriter.insert_snippets = _insert_snippets
   409     rqlrewrite.RQLRewriter.insert_snippets = _insert_snippets
   421     rqlrewrite.RQLRewriter.build_variantes = _build_variantes
   410     rqlrewrite.RQLRewriter.build_variantes = _build_variantes
   422     ExecutionPlan._check_permissions = _check_permissions
   411     ExecutionPlan._check_permissions = _check_permissions
   423     ExecutionPlan.tablesinorder = None
   412     ExecutionPlan.tablesinorder = None
   424     ExecutionPlan.init_temp_table = _init_temp_table
   413     ExecutionPlan.init_temp_table = _init_temp_table
   425     PartPlanInformation.merge_input_maps = _merge_input_maps
       
   426     PartPlanInformation._choose_term = _choose_term
       
   427 
   414 
   428 def undo_monkey_patch():
   415 def undo_monkey_patch():
   429     rqlrewrite.iter_relations = _orig_iter_relations
   416     rqlrewrite.iter_relations = _orig_iter_relations
   430     rqlrewrite.RQLRewriter.insert_snippets = _orig_insert_snippets
   417     rqlrewrite.RQLRewriter.insert_snippets = _orig_insert_snippets
   431     rqlrewrite.RQLRewriter.build_variantes = _orig_build_variantes
   418     rqlrewrite.RQLRewriter.build_variantes = _orig_build_variantes
   432     ExecutionPlan._check_permissions = _orig_check_permissions
   419     ExecutionPlan._check_permissions = _orig_check_permissions
   433     ExecutionPlan.init_temp_table = _orig_init_temp_table
   420     ExecutionPlan.init_temp_table = _orig_init_temp_table
   434     PartPlanInformation.merge_input_maps = _orig_merge_input_maps
       
   435     PartPlanInformation._choose_term = _orig_choose_term