Example #1
0
def test_ask_improvements_to_make_when_help_asked(mocker):
    mocker.patch('sys.stdout', new_callable=StringIO)
    mocker.patch('builtins.input', side_effect=['help', 'done'])
    mocker.spy(outputs, 'display_help')
    out = inputs.ask_improvements_to_make(list_improvements, player, tree)
    assert out is None
    assert outputs.display_help.call_count == 2
Example #2
0
def test_ask_improvements_to_make_when_done(mocker):
    mocker.patch('sys.stdout', new_callable=StringIO)
    mocker.patch('builtins.input', side_effect=['Nothing', 'done'])
    out = inputs.ask_improvements_to_make(list_improvements, player, tree)
    assert out is None
    output = sys.stdout.getvalue()
    assert output.find('try again') != -1
Example #3
0
def test_ask_improvements_to_make_when_not_done_and_enough_influence(mocker):
    mocker.patch('sys.stdout', new_callable=StringIO)
    mocker.patch('builtins.input',
                 side_effect=['Not an improvement', 'My Second improvement'])
    out = inputs.ask_improvements_to_make(list_improvements, player, tree)
    assert isinstance(out, Improvement) and out == improvement_two
    output = sys.stdout.getvalue()
    assert output.find('try again') != -1
Example #4
0
def test_ask_improvements_to_make_when_improvement_details_asked(mocker):
    mocker.patch('sys.stdout', new_callable=StringIO)
    mocker.patch('builtins.input',
                 side_effect=['Detail not understood', 'Detail 1', 'done'])
    mocker.spy(outputs, 'display_improvement_details')
    out = inputs.ask_improvements_to_make(list_improvements, player, tree)
    assert out is None
    assert outputs.display_improvement_details.call_count == 1
    assert sys.stdout.getvalue().find('try again') != -1
Example #5
0
def test_ask_improvements_to_make_when_not_done_and_not_enough_influence(
        mocker):
    mocker.patch('sys.stdout', new_callable=StringIO)
    mocker.patch('builtins.input',
                 side_effect=['My First improvement', 'done'])
    player.influence = 0
    out = inputs.ask_improvements_to_make(list_improvements, player, tree)
    assert out is None
    assert sys.stdout.getvalue().find('not have enough influence') != -1
Example #6
0
 def let_player_play(self):
     """ Let the player do all improvement he want/can """
     improvement = Improvement()
     while improvement is not None:
         outputs.display_influence_available(self.player)
         outputs.display_tree_available(self.tree, self.player.influence)
         improvement_available = self.tree.get_improvements_available()
         if len(improvement_available) != 0:
             improvement = inputs.ask_improvements_to_make(
                 improvement_available, self.player, self.tree)
             if improvement is not None:
                 improvement.develop()
                 self.player.use_influence(improvement.influence_cost)
         else:
             improvement = None