Esempio n. 1
0
    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})
Esempio n. 2
0
    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})
Esempio n. 3
0
    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
Esempio n. 4
0
"""
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'),
]