Esempio n. 1
0
    def test_bad_game_ending(self):
        game = Game.objects.get(pk=1)
        all_candidates = game.player1.candidates.all()
        game.player1.candidates.remove(*all_candidates)

        with assert_raises(BadGameConfig):
            eq_(is_game_complete(game), True)
Esempio n. 2
0
    def test_bad_game_ending(self):
        game = Game.objects.get(pk=1)
        all_candidates = game.player1.candidates.all()
        game.player1.candidates.remove(*all_candidates)

        with assert_raises(BadGameConfig):
            eq_(is_game_complete(game), True)
Esempio n. 3
0
def play_game(request, game_id):
    game = Game.objects.get(pk=int(game_id))
    player = game.players.filter(user=request.user)[0]

    candidates = player.candidates.all()
    ctx = {
        'opponent': get_game_opponent(game, player),
        'person': player.person,
        'num_candidates': candidates.count(),
        'candidates': candidates
    }

    if request.method == 'POST':
        form = QuestionForm(game, player, request.POST)
        if form.is_valid():
            custom_key = form.cleaned_data.get('question')
            trait_id, value_id = custom_key.split(':')
            question_data = {
                'game': game,
                'player': player,
                'trait': Trait.objects.get(pk=trait_id),
                'value': TraitValue.objects.get(pk=value_id)
            }
            question = Question(**question_data)
            rule_out_candidates(question)
            winner = is_game_complete(game)
            if winner:
                ctx.update({
                    'game_over': True,
                    'user_won': winner.pk is player.pk
                })
    else:
        form = QuestionForm(game, player)
    ctx['form'] = form

    return render_to_response('core/play_game.html',
                              ctx,
                              context_instance=RequestContext(request))
Esempio n. 4
0
def play_game(request, game_id):
    game = Game.objects.get(pk=int(game_id))
    player = game.players.filter(user=request.user)[0]

    candidates = player.candidates.all()
    ctx = {
        'opponent': get_game_opponent(game, player),
        'person': player.person,
        'num_candidates': candidates.count(),
        'candidates': candidates
    }

    if request.method == 'POST':
        form = QuestionForm(game, player, request.POST)
        if form.is_valid():
            custom_key = form.cleaned_data.get('question')
            trait_id, value_id = custom_key.split(':')
            question_data = {
                'game': game,
                'player': player,
                'trait': Trait.objects.get(pk=trait_id),
                'value': TraitValue.objects.get(pk=value_id)
            }
            question = Question(**question_data)
            rule_out_candidates(question)
            winner = is_game_complete(game)
            if winner:
                ctx.update({
                    'game_over': True,
                    'user_won': winner.pk is player.pk
                })
    else:
        form = QuestionForm(game, player)
    ctx['form'] = form

    return render_to_response('core/play_game.html', ctx,
                              context_instance=RequestContext(request))
Esempio n. 5
0
    def test_game_not_over(self):
        game = Game.objects.get(pk=1)

        eq_(is_game_complete(game), False)
Esempio n. 6
0
    def test_game_over(self):
        game = Game.objects.get(pk=1)
        most_candidates = game.player1.candidates.all()[1:]
        game.player1.candidates.remove(*most_candidates)

        eq_(is_game_complete(game), game.player1)
Esempio n. 7
0
    def test_game_not_over(self):
        game = Game.objects.get(pk=1)

        eq_(is_game_complete(game), False)
Esempio n. 8
0
    def test_game_over(self):
        game = Game.objects.get(pk=1)
        most_candidates = game.player1.candidates.all()[1:]
        game.player1.candidates.remove(*most_candidates)

        eq_(is_game_complete(game), game.player1)