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))
def test_get_game_opponent_as_2(self): game = Game.objects.get(pk=1) player = game.player2 eq_(get_game_opponent(game, player).pk, 1)