def test_update_room(self): room_post = self.app.post('/rooms/') self.assertEqual(room_post.status_code, 201) self.assertTrue(valid_room_id(room_post.json)) room_id = room_post.json add_players_test = self.app.patch( '/rooms/%s' % room_id, json={"players": ["user-1"]}, headers={'Content-Type': 'application/json'}) self.assertEqual(add_players_test.status_code, 200)
def test_room_get_id(self): rooms_get = self.app.get('/rooms/ASDF') self.assertEqual(rooms_get.status_code, 404) room_post = self.app.post('/rooms/') self.assertEqual(room_post.status_code, 201) self.assertTrue(valid_room_id(room_post.json)) room_id = room_post.json rooms_get = self.app.get('/rooms/%s' % room_id) self.assertEqual(rooms_get.status_code, 200) self.assertEqual(type(rooms_get.json), dict)
def test_create_many_rooms(self): result_get_empty = self.app.get('/rooms/') self.assertEqual(result_get_empty.status_code, 200) self.assertEqual(result_get_empty.json, []) for rooms_created in range(1, 100): room_post = self.app.post('/rooms/') self.assertEqual(room_post.status_code, 201) self.assertTrue(valid_room_id(room_post.json)) rooms_get = self.app.get('/rooms/') self.assertEqual(rooms_get.status_code, 200) self.assertEqual(len(rooms_get.json), rooms_created)
def test_rooms(self): result_get_empty = self.app.get('/rooms/') # assert the status code of the response self.assertEqual(result_get_empty.status_code, 200) self.assertEqual(result_get_empty.json, []) result_post_first = self.app.post('/rooms/') self.assertEqual(result_post_first.status_code, 201) self.assertTrue(valid_room_id(result_post_first.json)) result_get_one = self.app.get('/rooms/') self.assertEqual(result_get_one.status_code, 200) self.assertEqual(len(result_get_one.json), 1)
def test_delete_room(self): room_post = self.app.post('/rooms/') self.assertEqual(room_post.status_code, 201) self.assertTrue(valid_room_id(room_post.json)) room_id = room_post.json rooms_get = self.app.get('/rooms/') self.assertEqual(rooms_get.status_code, 200) self.assertEqual(rooms_get.json[0], room_id) rooms_delete = self.app.delete('/rooms/%s' % room_id) self.assertEqual(rooms_delete.status_code, 204) rooms_get = self.app.get('/rooms/') self.assertEqual(rooms_get.status_code, 200) self.assertEqual(rooms_get.json, []) rooms_delete = self.app.delete('/rooms/%s' % room_id) self.assertEqual(rooms_delete.status_code, 404)
def attempt_join(join_room, join_name): if not valid_room_id(join_room): response = jsonify("Room Id not valid") response.status_code = 400 return response elif not db_container.get_database().room_exists(join_room): response = jsonify("Room Id not found") response.status_code = 404 return response session_name = session[ SESSION_USERNAME] if SESSION_USERNAME in session else None session_room = session[SESSION_ROOM] if SESSION_ROOM in session else None # Fix the user's name so they can't change names # from the same browser. They just rejoined the room so we're good if session_room != None and session_room == join_room and session_name != None: session[SESSION_USERNAME] = session_name session[SESSION_ROOM] = session_room response = jsonify({ "status": "rejoin", "username": session_name, "room": session_room }) response.status_code = 200 return response # Attempt to join the room # Filter out invalid characters in name join_name = get_filtered_username(join_name) # Check to ensure name is valid if not valid_username(join_name): response = jsonify("Invalid username") response.status_code = 400 return response # Check to ensure the game is not full if db_container.get_database().is_room_full(join_room): response = jsonify("Room is full") response.status_code = 401 return response # Check to ensure the game is not full if db_container.get_database().is_player_in_room(join_room, join_name): response = jsonify("Name is taken") response.status_code = 401 return response # Make request to join game from database join_name = db_container.get_database().add_player(join_room, join_name) if join_name == None: response = jsonify("Error joining room") response.status_code = 500 return response # Set session token session[SESSION_USERNAME] = join_name session[SESSION_ROOM] = join_room response = jsonify({ "status": "join", "username": join_name, "room": join_room }) response.status_code = 200 return response