def test_Selector_make_score_tools_performer_name_selector_01():

    selector = Selector.make_score_tools_performer_name_selector()
    assert selector._run(pending_user_input='q') is None

    selector = Selector.make_score_tools_performer_name_selector()
    assert selector._run(pending_user_input='b') is None

    selector = Selector.make_score_tools_performer_name_selector()
    assert selector._run(pending_user_input='home') is None
def test_Selector_make_score_tools_performer_name_selector_02():

    selector = Selector.make_score_tools_performer_name_selector()
    assert selector._run(pending_user_input='vn') == 'violinist'
def test_Selector_make_score_tools_performer_name_selector_03():

    selector = Selector.make_score_tools_performer_name_selector()
    selector.is_ranged = True
    assert selector._run(pending_user_input='vn, va') == ['violinist', 'violist']
Ejemplo n.º 4
0
 def _run(
     self, 
     cache=False, 
     clear=True, 
     head=None, 
     pending_user_input=None,
     ):
     from experimental.tools.scoremanagertools.iotools import Selector
     self.session.io_manager.assign_user_input(pending_user_input)
     self.session.cache_breadcrumbs(cache=cache)
     try_again = False
     performers = []
     while True:
         self.session.push_breadcrumb(self._breadcrumb)
         selector = Selector.make_score_tools_performer_name_selector(
             session=self.session,
             )
         selector.is_ranged=self.is_ranged
         with self.backtracking:
             result = selector._run()
         if self.session.backtrack():
             break
         if isinstance(result, list):
             performer_names = result
         else:
             performer_names = [result]
         performers = []
         for performer_name in performer_names:
             self.session.push_breadcrumb(self._breadcrumb)
             with self.backtracking:
                 performer = scoretools.Performer(performer_name)
                 self.interactively_initialize_performer(performer)
             self.session.pop_breadcrumb()
             was_backtracking_locally = \
                 self.session.is_backtracking_locally
             if self.session.backtrack():
                 if was_backtracking_locally:
                     try_again = True
                 else:
                     try_again = False
                     performers = []
                 break
             performers.append(performer)
         if not try_again:
             break
         else:
             try_again = False
             self.session.pop_breadcrumb()
     if self.is_ranged and performers:
         final_result = performers[:]
     elif self.is_ranged and not performers:
         final_result = []
     elif not self.is_ranged and performers:
         final_result = performers[0]
     elif not self.is_ranged and not performers:
         final_result = None
     else:
         raise ValueError
     self.session.pop_breadcrumb()
     self.session.restore_breadcrumbs(cache=cache)
     self.target = final_result
     return self.target