Example #1
0
 def update_monster(id):
     payload = request.get_json()
     if monster := Monster.find(id):
         if name := payload.get("name", None):
             if checker := Monster.find_by(name):
                 if monster.id != checker.id:
                     abort(
                         Response(
                             response=
                             f"Name: '{name}' belongs to another monster.",
                             status=405,
                         ))
Example #2
0
    def add_monster():
        payload = request.get_json()
        if not payload:
            abort(400)

        name = payload.get("name", None)

        if Monster.find_by(name):
            abort(
                Response(
                    response=f"Monster '{name}' already created.",
                    status=405,
                ))

        race = payload.get("race", None)
        health_points = payload.get("health_points", None)
        armor_points = payload.get("armor_points", None)
        attack_damage = payload.get("attack_damage", None)
        xp_drop = payload.get("xp_drop", None)

        monster = Monster(
            name=name,
            race=race,
            health_points=health_points,
            armor_points=armor_points,
            attack_damage=attack_damage,
            xp_drop=xp_drop,
        )
        monster.insert()
        return jsonify(monster.short())
 def test_ok_found_monster(self):
     monster = Monster.find_by("monster_name")
     id = monster.id
     response = self.client().get(
         f"/monsters/{id}",
         headers=self.headers,
     )
     self.assertEqual(response.status_code, 200)
 def test_ok_add_monster_to_dungeon(self):
     monster = Monster.find_by("monster_name")
     monster_id = monster.id
     dungeon = Dungeon.find_by(1)
     dungeon_id = dungeon.id
     response = self.client().post(
         f"/dungeons/{dungeon_id}/monsters",
         headers=self.headers,
         json={"monster_id": monster_id},
     )
     self.assertEqual(response.status_code, 200)
 def test_ok_remove_monster_to_dungeon(self):
     monster = Monster.find_by("monster_name")
     monster_id = monster.id
     dungeon = Dungeon.find_by(1)
     dungeon_id = dungeon.id
     dungeon.monsters.append(monster)
     response = self.client().delete(
         f"/dungeons/{dungeon_id}/monsters",
         headers=self.headers,
         json={"monster_id": monster_id},
     )
     self.assertEqual(response.status_code, 200)
 def test_ok_create_monster(self):
     payload = {
         "name": "new_name",
         "race": "monster_race",
     }
     response = self.client().post(
         "/monsters",
         headers=self.headers,
         json=payload,
     )
     self.assertEqual(response.status_code, 200)
     monster = Monster.find_by("new_name")
     monster.delete()
 def test_ok_update_monster(self):
     monster = Monster.find_by("monster_name")
     id = monster.id
     payload = {
         "name": "monster_name",
         "attack_damage": "3",
         "xp_drop": "100",
     }
     response = self.client().patch(
         f"/monsters/{id}",
         headers=self.headers,
         json=payload,
     )
     self.assertEqual(response.status_code, 200)
 def tearDown(cls):
     if monster := Monster.find_by("monster_name"):
         monster.delete()