def setUp(self): server = MockSocketIOServer() self.environ = {} socket = MockSocket(server, {}) self.environ['socketio'] = socket self.ns = GameNamespace(self.environ, '/game') # Create mock objects for testing the socket self.ns.emit = MagicMock() self.ns.broadcast_to_room = MagicMock() self.ns.emit_to_room = MagicMock() self.ns.get_time = MagicMock(return_value=12242012) # Create a game with one user User.objects.create_user("hosting_player", "email", "password") self.user = authenticate(username="******", password="******") self.aMap = Map(creator=self.user, num_players=3, data="{}", map_name="Oogie Boogie") self.aMap.save() self.game, self.players_json = Game.create_new_game(self.aMap.id, self.user) self.ns.request = MockRequest() self.ns.request.user = self.user self.ns.request.META = { 'QUERY_STRING': 'id=' + str(self.game.id) }
def test_add_user_to_game(self): game, _ = Game.create_new_game(self.aMap.id, self.user) # Perform the join logic _, players_json, player_id = Game.add_user_to_game(game.id, self.joiner) # Check a bunch of conditions self.assertEqual(len(players_json), 3) self.assertEqual(players_json[0], "hosting_player") self.assertEqual(players_json[1], "joining_player")
def post(self, request): """ Create a new game """ form = GameForm(request.POST) if form.is_valid(): game, players_json = Game.create_new_game(form.cleaned_data["map_id"], request.user) # Render the context with our parameters. return redirect(reverse("game_view", kwargs={"gameid": game.id})) else: # Needs better error handling raise Http404
def test_create_new_game(self): game, players_json = Game.create_new_game(self.aMap.id, self.user) self.assertEqual(len(players_json), 3) self.assertEqual(players_json[0], "hosting_player") pass