class TestModifiersModifying(DefaultCharacter): def test_dex_adds_armor(self): for score in range(1,20): self.character.stat("dex",score) self.assertEqual(self.character.armor_class(), DEFAULT_ARMOR_CLASS + self.character.stat_mod("dex")) @patch("evercraft.roll", return_value=10) def test_roll_str_modifier(self, __): for score in range(1,20): result = self.character.roll_stat("str") self.assertEqual(result, 10 + self.character.stat_mod("str")) @patch("evercraft.roll", return_value=19) def test_str_adds_damage(self, __): self.character.stat("str",20) self.opponent = Character() self.character.attack(self.opponent) self.assertEqual(self.opponent.hit_points(), DEFAULT_HIT_POINTS - (DEFAULT_DAMAGE + 5)) def test_con_adds_hit_points(self): for score in range(1,20): self.assertEqual(self.character.hit_points(), DEFAULT_HIT_POINTS + self.character.stat_mod("con"))