def test_redirects_to_game_view_with_passed_game_pk(self): game_pk = 2 move_view = MoveView() url = move_view.get_redirect_url(game_pk) assert url == reverse('game', kwargs={'game_pk': game_pk})
def test_post_handler_returns_redirect(self, mock_game_class, mock_get_object_or_404): game_pk = 2 current_x, current_y, new_x, new_y = 1, 2, 3, 4 request = HttpRequest() request.method = 'POST' request.POST = {'current_x': current_x, 'current_y': current_y, 'new_x': new_x, 'new_y': new_y} move_view = MoveView() mock_game = Mock() mock_get_object_or_404.return_value = mock_game response = move_view.post(request, game_pk=game_pk) assert response.url == reverse('game', kwargs={'game_pk': game_pk})
def test_retrieves_game_and_calls_its_move_with_passed_arguments(self, mock_game_class, mock_get_object_or_404): game_pk = 2 current_x, current_y, new_x, new_y = 1, 2, 3, 4 request = HttpRequest() request.method = 'POST' request.POST = {'current_x': current_x, 'current_y': current_y, 'new_x': new_x, 'new_y': new_y} move_view = MoveView() mock_game = Mock() mock_get_object_or_404.return_value = mock_game move_view.post(request, game_pk=game_pk) assert mock_get_object_or_404.call_args == ((mock_game_class,), {'pk': 2}) assert mock_game.move.call_args == ((), {'current_x': current_x, 'current_y': current_y, 'new_x': new_x, 'new_y': new_y}) assert mock_game.save.called
""" The URL routing for the interface app. """ from django.conf.urls import url from interface.views import GameView, NewGameView, MoveView urlpatterns = [ url(r'^/game/new$', NewGameView.as_view(), name='new-game'), url(r'^/game/(?P<game_pk>\d+)$', GameView.as_view(), name='game'), url(r'^/game/(?P<game_pk>\d+)/move$', MoveView.as_view(), name='move'), ]