Esempio n. 1
0
 def test_start_game(self):
     desert = mixer.blend('catan.Hexe', board=self.board, terrain='desert')
     self.room_1.players.add(self.player_3)
     path = reverse('join_room', kwargs={'pk': 1})
     request = RequestFactory().patch(path, content_type='application/json')
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     assert response.status_code == 204
     request = RequestFactory().get(path)
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     json_1 = {
         'game_has_started':
         True,
         'game_id':
         1,
         'id':
         1,
         'max_players':
         4,
         'name':
         'room_1',
         'owner':
         'owner_test',
         'players':
         ['owner_test', 'player_test1', 'player_test2', 'player_test3']
     }
     assert json_1 == response.data
     assert response.status_code == 200
Esempio n. 2
0
 def test_add_to_many_players(self):
     self.room_1.players.add(self.player_3)
     path = reverse('join_room', kwargs={'pk': 1})
     request = RequestFactory().put(path)
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     assert len(self.room_1.players.all()) == 4
     assert response.status_code == 400
     request = RequestFactory().get(path)
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     json_1 = {
         'game_has_started':
         False,
         'game_id':
         None,
         'id':
         1,
         'max_players':
         4,
         'name':
         'room_1',
         'owner':
         'owner_test',
         'players':
         ['owner_test', 'player_test1', 'player_test2', 'player_test3']
     }
     assert json_1 == response.data
     assert response.status_code == 200
Esempio n. 3
0
 def test_start_game_without_all_players(self):
     path = reverse('join_room', kwargs={'pk': 1})
     request = RequestFactory().patch(path, content_type='application/json')
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     assert response.status_code == 400
Esempio n. 4
0
 def test_create_room_success(self):
     path = reverse('list_rooms')
     data = {
         'name': 'room_3',
         'owner': self.user.username,
         'players': [],
         'board_id': self.board.id
     }
     request = RequestFactory().post(path,
                                     data,
                                     content_type='application/json')
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomList.as_view()
     response = view(request)
     assert response.status_code == 201
     path = reverse('join_room', kwargs={'pk': 3})
     request = RequestFactory().get(path)
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=3)
     json_1 = {
         'game_has_started': False,
         'game_id': None,
         'id': 3,
         'max_players': 4,
         'name': 'room_3',
         'owner': 'test_user',
         'players': ['test_user']
     }
     assert json_1 == response.data
     assert response.status_code == 200
Esempio n. 5
0
 def test_delete_room_has_tarted(self):
     desert = mixer.blend('catan.Hexe', board=self.board, terrain='desert')
     self.room_1.players.add(self.player_3)
     path = reverse('join_room', kwargs={'pk': 1})
     request = RequestFactory().patch(path, content_type='application/json')
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     assert response.status_code == 204
     path = reverse('join_room', kwargs={'pk': 1})
     request = RequestFactory().delete(path)
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     assert response.status_code == 403
     assert response.data == {"detail": "Can't delete the room"}
     assert Room.objects.filter(id=1).exists() is True
Esempio n. 6
0
 def test_delete_room(self):
     path = reverse('join_room', kwargs={'pk': 1})
     request = RequestFactory().delete(path)
     force_authenticate(request, user=self.owner, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     assert response.status_code == 204
     assert Room.objects.filter(id=1).exists() is False
Esempio n. 7
0
 def test_delete_room_not_owner(self):
     path = reverse('join_room', kwargs={'pk': 1})
     request = RequestFactory().delete(path)
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     assert response.status_code == 403
     assert response.data == {"detail": "Can't delete the room"}
     assert Room.objects.filter(id=1).exists() is True
Esempio n. 8
0
 def test_add_players_inexistent_room(self):
     self.room_1.delete()
     path = reverse('join_room', kwargs={'pk': 1})
     request = RequestFactory().put(path)
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=1)
     response.render()
     assert response.status_code == 404
Esempio n. 9
0
 def test_add_players(self):
     path = reverse('join_room', kwargs={'pk': 2})
     request = RequestFactory().put(path)
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=2)
     assert response.status_code == 204
     request = RequestFactory().get(path)
     force_authenticate(request, user=self.user, token=self.token)
     view = RoomDetail.as_view()
     response = view(request, pk=2)
     json_1 = {
         'game_has_started': False,
         'game_id': None,
         'id': 2,
         'max_players': 4,
         'name': 'room_2',
         'owner': 'owner_test',
         'players': ['test_user', 'owner_test', 'player_test2']
     }
     assert json_1 == response.data
     assert response.status_code == 200