Example #1
0
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
Example #2
0
    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")
Example #3
0
    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']