def build_template_context(request, game, turn_number=None): if turn_number is not None: state = game.deserialize(game.get_state(turn_number)) else: state = game.deserialize(game.current_state()) variables, coefficients = state['variables'], state['coefficients'] if '' in variables.owned_items: variables.owned_items.remove('') if '' in variables.user_messages: variables.user_messages.remove('') people = list(logic.setup_people(variables, coefficients, None)) display_vars = dict(game=game, state=variables, coeffs=coefficients, people=people) display_vars = display_logic.add_extra_gameshow_context(display_vars) display_vars = display_logic.add_extra_seasonreport_context(display_vars) display_vars['user'] = request.user turn_number = turn_number or game.state_set.count() display_vars['turn'] = dict(number=turn_number) if turn_number > 1: previous_state = game.deserialize(game.get_state(turn_number-1)) display_vars['notifications'] = get_notifications( previous_state['variables'], state['variables'], state['coefficients'], events_csv=settings.MVSIM_EVENTS_CSV) display_vars['FIXME'] = '' return display_vars
def test_more_births_than_child_names(self): self.state.user_messages.append('child born') self.state.births = 1 self.coeffs.child_names = [] context = { 'people': [], 'state': self.state, 'coeffs': self.coeffs, } r = add_extra_seasonreport_context(context) assert r['new_baby'] == "child1" # and make sure the normal case still works self.coeffs.child_names = ['bart'] context = { 'people': [], 'state': self.state, 'coeffs': self.coeffs, } r = add_extra_seasonreport_context(context) self.assertEqual(r['new_baby'], "bart")
def test_add_extra_seasonreport_context(self): context = { 'people': [], 'state': self.state, 'coeffs': self.coeffs, } r = add_extra_seasonreport_context(context) assert r['n_health_people'] == 0 assert r['money_spent'] == 0 assert r['money_earned'] == 0 assert r['percent_infected'] == 0 # needs to not barf on zero population context['state'].village_population = 0 r = add_extra_seasonreport_context(context) assert r['percent_infected'] == 0 # test out village improvements context['state'].improvements = ['foo'] context['coeffs'].available_improvements = ['foo'] context['coeffs'].improvement_labels = ['bar'] r = add_extra_seasonreport_context(context) assert r['village_improvements'] == ['bar']