示例#1
0
    def test_update_updates_game(self):
        update_url = "/games/{}".format(self.game.get_id())
        game_number = self.game.get_id() * 100
        name = get_incremental_game_name(game_number)
        description = get_incremental_game_description(game_number)
        match_size = self.game.get_match_size()
        game_data = {"name": name, "description": description, "is_active": False}
        response = self.put(update_url, data=game_data)
        self.assertEqual(200, response.status_code)
        game = json.loads(response.data)
        self.assertIsNotNone(game.get("id"))
        self.assertIsNotNone(game.get("date_created"))
        self.assertIsNotNone(game.get("date_modified"))
        self.assertEqual(name, game.get("name"))
        self.assertEqual(description, game.get("description"))
        self.assertEqual(match_size, game.get("match_size"))
        self.assertEqual(False, game.get("is_active"))

        # Make sure the game was actually updated in the database
        saved_game = GamesService.get_instance().get(int(game.get("id")))
        self.assertEqual(saved_game.get_id(), game.get("id"))
        self.assertEqual(Game.dump_datetime(saved_game.get_date_created()), game.get("date_created"))
        self.assertEqual(Game.dump_datetime(saved_game.get_date_modified()), game.get("date_modified"))
        self.assertEqual(saved_game.get_name(), game.get("name"))
        self.assertEqual(saved_game.get_description(), game.get("description"))
        self.assertEqual(saved_game.get_match_size(), game.get("match_size"))
        self.assertEqual(saved_game.get_is_active(), game.get("is_active"))
示例#2
0
    def test_create_returns_created_status(self):
        game_id = self.NUM_GAMES + 1
        create_url = "/games"
        name = get_incremental_game_name(game_id)
        description = get_incremental_game_description(game_id)
        game_data = {"name": name, "description": description, "match_size": 2}
        response = self.post(create_url, data=game_data)
        self.assertEqual(201, response.status_code)
        game = json.loads(response.data)
        self.assertIsNotNone(game.get("id"))
        self.assertIsNotNone(game.get("date_created"))
        self.assertIsNotNone(game.get("date_modified"))
        self.assertEqual(name, game.get("name"))
        self.assertEqual(description, game.get("description"))
        self.assertEqual(2, game.get("match_size"))
        self.assertEqual(True, game.get("is_active"))

        # Make sure the game was actually saved to the database
        saved_game = GamesService.get_instance().get(int(game.get("id")))
        self.assertEqual(saved_game.get_id(), game.get("id"))
        self.assertEqual(Game.dump_datetime(saved_game.get_date_created()), game.get("date_created"))
        self.assertEqual(Game.dump_datetime(saved_game.get_date_modified()), game.get("date_modified"))
        self.assertEqual(saved_game.get_name(), game.get("name"))
        self.assertEqual(saved_game.get_description(), game.get("description"))
        self.assertEqual(saved_game.get_match_size(), game.get("match_size"))
        self.assertEqual(saved_game.get_is_active(), game.get("is_active"))
示例#3
0
 def test_create_returns_error_from_missing_name(self):
     game_id = self.NUM_GAMES + 1
     create_url = "/games"
     description = get_incremental_game_description(game_id)
     game_data = {"description": description, "match_size": 2}
     response = self.post(create_url, data=game_data)
     self.assertEqual(422, response.status_code)
     errors = json.loads(response.data)
     self.assertIsNotNone(errors.get("errors"))
     self.assertIsNotNone(errors.get("errors").get("name"))
     self.assertIsNotNone(errors.get("inputs"))
     self.assertEqual("", errors.get("inputs").get("name"))
     self.assertEqual(description, errors.get("inputs").get("description"))
     self.assertEqual(2, errors.get("inputs").get("match_size"))
示例#4
0
 def test_create_returns_error_from_negative_match_size(self):
     game_id = self.NUM_GAMES + 1
     create_url = "/games"
     name = get_incremental_game_name(game_id)
     description = get_incremental_game_description(game_id)
     match_size = -1
     game_data = {"name": name, "description": description, "match_size": match_size}
     response = self.post(create_url, data=game_data)
     self.assertEqual(422, response.status_code)
     errors = json.loads(response.data)
     self.assertIsNotNone(errors.get("errors"))
     self.assertIsNotNone(errors.get("errors").get("match_size"))
     self.assertIsNotNone(errors.get("inputs"))
     self.assertEqual(name, errors.get("inputs").get("name"))
     self.assertEqual(description, errors.get("inputs").get("description"))
     self.assertEqual(match_size, errors.get("inputs").get("match_size"))
示例#5
0
 def test_create_returns_error_from_name_not_unique(self):
     game_id = self.NUM_GAMES + 1
     game_number = 1 if self.game.get_id() == 2 else 2
     create_url = "/games"
     name = get_incremental_game_name(game_number)
     description = get_incremental_game_description(game_id)
     game_data = {"name": name, "description": description, "match_size": 2}
     response = self.post(create_url, data=game_data)
     self.assertEqual(422, response.status_code)
     errors = json.loads(response.data)
     self.assertIsNotNone(errors.get("errors"))
     self.assertIsNotNone(errors.get("errors").get("IntegrityError"))
     self.assertIsNotNone(errors.get("inputs"))
     self.assertEqual(name, errors.get("inputs").get("name"))
     self.assertEqual(description, errors.get("inputs").get("description"))
     self.assertEqual(2, errors.get("inputs").get("match_size"))