Ejemplo n.º 1
0
 def test_attack_successful(self, mock_generate_name, mock_roll_die,
                            mock_input, mock_stdout):
     attacker = dungeonsanddragons.create_character(5)
     defender = dungeonsanddragons.create_character(5)
     dungeonsanddragons.attack_player(attacker, defender)
     expected_output = 'player1 hit player2 for 3 damage\n player2 has 2 HitPoints left\n'
     output = mock_stdout.getvalue()
     self.assertEqual(expected_output, output)
Ejemplo n.º 2
0
 def test_hp_reduction(self, mock_generate_name, mock_roll_die, mock_input):
     expected_output = ''
     character_1 = dungeonsanddragons.create_character(5)
     character_2 = dungeonsanddragons.create_character(5)
     dungeonsanddragons.combat_round(character_1, character_2)
     character_1_hp = character_1['HitPoints'] == 4
     character_2_hp = character_2['HitPoints'] == 3
     self.assertTrue(character_1_hp and character_2_hp)
Ejemplo n.º 3
0
 def test_killed_defender(self, mock_generate_name, mock_roll_die,
                          mock_input, mock_stdout):
     attacker = dungeonsanddragons.create_character(5)
     defender = dungeonsanddragons.create_character(5)
     dungeonsanddragons.attack_player(attacker, defender)
     expected_output = 'player1 hit player2 for 6 damage\n player2 died\n'
     output = mock_stdout.getvalue()
     self.assertEqual(expected_output, output)
Ejemplo n.º 4
0
 def test_attack_missed(self, mock_generate_name, mock_roll_die, mock_input,
                        mock_stdout):
     attacker = dungeonsanddragons.create_character(5)
     defender = dungeonsanddragons.create_character(5)
     dungeonsanddragons.attack_player(attacker, defender)
     expected_output = 'player1 did not hit player2\n'
     output = mock_stdout.getvalue()
     self.assertEqual(expected_output, output)
    def test_create_character_race(self, mock_input):

        race_list = ['', 'dragonborn', 'dwarf', 'elf', 'gnome', 'half-elf', 'halfling', 'half-orc', 'human', 'tiefling']

        for i in range(1, len(race_list)):
            my_char = create_character(4)
            self.assertEqual(my_char['Race'], race_list[i])
    def test_create_character_class(self, mock_input):
        class_list = ['', 'barbarian', 'bard', 'cleric', 'druid', 'fighter', 'monk', 'paladin', 'ranger', 'rogue',
                      'sorcerer', 'warlock', 'wizard']

        for i in range(1, len(class_list)):
            my_char = create_character(4)
            self.assertEqual(my_char['Class'], class_list[i])
    def test_create_character_list_attributes_max(self, mock_input, mock_roll):
        my_char = create_character(3)

        att_list = ["Strength", "Dexterity", "Constitution", "Intelligence", "Wisdom", "Charisma"]

        for i in range(0, len(att_list)):
            self.assertEqual(my_char[att_list[i]], 9)
 def test_create_character_attributes(self, mock_input):
     attributes = [
         "Strength", "Dexterity", "Constitution", "Intelligence", "Wisdom",
         "Charisma"
     ]
     for u in range(0, 1000):
         character = create_character(1)
         for i in range(len(attributes)):
             self.assertTrue(3 <= character[attributes[i]] <= 18)
Ejemplo n.º 9
0
 def test_create_character(self, mock_input, mock_roll_die,
                           mock_generate_name, mock_stdout):
     character = dungeonsanddragons.create_character(5)
     expected_character = {
         'name': 'player',
         'class': 'barbarian',
         'HitPoints': 5,
         'strength': 5,
         'dexterity': 5,
         'constitution': 5,
         'intelligence': 5,
         'wisdom': 5,
         'charisma': 5,
         'XP': 0,
         'items': ''
     }
     self.assertEqual(character, expected_character)
 def test_create_character_format(self, mock_name, mock_hp_roll, mock_race,
                                  mock_class, mock_roll):
     syllables = 3
     expected = {
         "Name": "Jaxeno",
         "Class": "monk",
         "Race": "elf",
         "HP": [8, 8],
         "Strength": 3,
         "Dexterity": 3,
         "Constitution": 3,
         "Intelligence": 3,
         "Wisdom": 3,
         "Charisma": 3,
         "XP": 0,
         "Inventory": []
     }
     self.assertEqual(expected, create_character(syllables))
    def test_character_hp(self, mock_input, mock_roll):
        my_char = create_character(4)

        self.assertEqual((my_char['HP']['Max']), 8)
 def test_create_character_dictionary_length(self, mock_input):
     self.assertEqual(len(create_character(1)), 11)
 def test_create_character_bad_argument_string_warning(self, mock_stdout):
     create_character("bad_name")
     self.assertTrue("WARNING" in mock_stdout.getvalue())
 def test_create_character_class(self, mock_input):
     self.assertEqual(create_character(1)["Class"], "bard")
    def test_create_character_no_inv(self, mock_input):
        my_char = create_character(4)

        self.assertEqual(len(my_char['Inventory']), 0)
 def test_create_character_bad_argument_no_syllables(self):
     self.assertEqual(create_character(0), None)
 def test_create_character_inventory(self, mock_input):
     self.assertEqual(create_character(1)["Inventory"], [])
 def test_create_character_xp(self, mock_input):
     self.assertEqual(create_character(1)["XP"], 0)
 def test_create_character_hp(self, mock_input):
     for i in range(0, 1000):
         character = create_character(1)
         self.assertTrue(
             1 <= character["HP"] <= character_class()[character["Class"]])
Ejemplo n.º 20
0
 def test_string_pairs(self, mock_input):  # check that name, race, and class are strings
     for i in ['Name', 'Race', 'Class']:
         self.assertIsInstance((create_character(3))[i], str)
    def test_create_character_no_xp(self, mock_input):
        my_char = create_character(4)

        self.assertEqual(my_char['XP'], 0)
Ejemplo n.º 22
0
 def test_list_pairs(self, mock_input):  # check that HP and inventory are lists
     for i in ['HP', 'Inventory']:
         self.assertIsInstance((create_character(3))[i], list)
Ejemplo n.º 23
0
 def test_wrong_input(self):
     self.assertEqual(dungeonsanddragons.create_character('wefgfwd'), None)
 def test_create_character_name(self, mock_input):
     self.assertEqual(len(create_character(1)["Name"]), 2)
Ejemplo n.º 25
0
 def test_int_pairs(self, mock_input):  # check that XP and stats are ints
     for i in ['Strength', 'Dexterity', 'Constitution', 'Intelligence', 'Wisdom', 'Charisma', 'XP']:
         self.assertIsInstance((create_character(3))[i], int)
 def test_create_character_bad_argument_no_syllables_warning(
         self, mock_stdout):
     create_character(0)
     self.assertTrue("WARNING" in mock_stdout.getvalue())
Ejemplo n.º 27
0
 def test_is_dictionary(self, mock_input):  # test if returned  object is a dict
     self.assertIsInstance(create_character(3), dict)
 def test_create_character_bad_argument_string(self):
     self.assertEqual(create_character("bad_name"), None)