def test_get_event_possible(mocker): mocker.patch.object(Event, 'is_event_possible', side_effect=[True, True, True, False, False]) events = Events([Event(), Event(), Event(), Event(), Event()]) events_possible = events.get_event_possible(country) assert events_possible == events.events[0:3]
def test_event_effect_event_not_occurs(mocker): effect_dict = {'effect': 0} mocker.patch.object(ev, 'is_event_occurs', return_value=False) mocker.patch.object(Events, 'get_event_possible', return_value=[Event(), Event()]) mocker.patch.object(random, 'choice', return_value=Event()) mocker.patch.object(Effects, 'get_current_effects', return_value=effect_dict) events = Events() effect = events.get_event_effect(country) assert effect == {} assert random.choice.call_count == 0
def test_event_effect_with_event(mocker): effect_dict = {'effect': 0} mocker.patch.object(ev, 'is_event_occurs', return_value=True) mocker.patch.object(Events, 'get_event_possible', return_value=[Event(), Event()]) mocker.patch.object(random, 'choice', return_value=Event()) mocker.patch.object(Effects, 'get_current_effects', return_value=effect_dict) mocker.patch.object(outputs, 'display_event', return_value=None) events = Events() effect = events.get_event_effect(country) assert effect == effect_dict assert random.choice.call_count == 1 assert outputs.display_event.call_count == 1
def test_is_event_possible_false(mocker): mocker.patch.object(Country, '__getattr__', return_value=0.5) event = Event(condition_type=EffectDescriptor.SOCIAL, condition_direction='inf', condition_value=0.4, is_done=False) assert not event.is_event_possible(country) event = Event(condition_type=EffectDescriptor.SOCIAL, condition_direction='sup', condition_value=0.6, is_done=False) assert not event.is_event_possible(country) event = Event(condition_type=EffectDescriptor.SOCIAL, condition_direction='inf', condition_value=0.6, is_done=True) assert not event.is_event_possible(country)
def test_display_event(mocker): name = 'Name' description = 'Description' effects = 'Effects' mocker.patch('sys.stdout', new_callable=StringIO) mocker.patch.object(outputs, 'effects_to_str', return_value=effects) event = Event(name=name, description=description, effects=Effects()) outputs.display_event(event) out = sys.stdout.getvalue() assert out.find(name) != -1 assert out.find(description) != -1 assert out.find(effects) != -1
def test_get_effect(mocker): mocker.patch.object(Effects, 'get_current_effects', return_value={}) event = Event() effect = event.get_effects() assert Effects.get_current_effects.call_count == 1 assert effect == {}
def test_init_error(): with pytest.raises(KeyError): Event(condition_direction='inp')