def test_choose_inventory_large_selection(self, mock_stdout):
     items = [
         "Armor", "Shield", "Consumables", "Weapons", "Gear", "Tools",
         "Wands", "Gold"
     ]
     expected_output = 'Error: Not enough elements in list to select.\n'
     dungeonsanddragons.choose_inventory(items, 12)
     self.assertEqual(mock_stdout.getvalue(), expected_output)
 def test_choose_inventory(self, mock_stdout):
     items = [
         "Armor", "Shield", "Consumables", "Weapons", "Gear", "Tools",
         "Wands", "Gold"
     ]
     expected_output = 'Error: Selection must be a positive integer.\n'
     dungeonsanddragons.choose_inventory(items, -4)
     self.assertEqual(mock_stdout.getvalue(), expected_output)
 def test_printed_output(self, mock_stdout, mock_input):
     expected_output = "Welcome to Yolanda's Premium Adventure Shop! For all your dungeon-crawling needs.\n" \
                       "\nToday there are 14 shop items available. They are:\n" \
                       "1 - Sword of Sanctimony\n2 - Potion of Python\n3 - Daggers of Deception" \
                       "\n4 - Staff of Serenity\n5 - Juggling Balls of JavaScript\n6 - Detonator of Divide-by-Zero" \
                       "\n7 - Gloves of Genius\n8 - Map of Misdirection\n9 - Crossbow of Courage" \
                       "\n10 - Charm of Chris' Approval\n11 - Cloak of Confusion\n12 - Takashi's Donut Box" \
                       "\n13 - Bottle of Binary\n14 - Axe of Asking Questions\n\n\n"
     choose_inventory()
     self.assertEqual(mock_stdout.getvalue(), expected_output)
 def test_choose_inventory_type(self):
     items = [
         "Armor", "Shield", "Consumables", "Weapons", "Gear", "Tools",
         "Wands", "Gold"
     ]
     self.assertEqual(type(dungeonsanddragons.choose_inventory(items, 5)),
                      list)
    def test_choose_inventory_error(self, mock_items, mock_output):
        sample = [
            'Rabadon\'s Deathcap', 'Abyssal Mask', 'Rapidfire Cannon',
            'Boots of Lucidity'
        ]
        expected = """Welcome to the Olde Tyme Merchant!

Here is what we have for sale:
--Current Inventory--


1. Rabadon's Deathcap
2. Abyssal Mask
3. Rapidfire Cannon
4. Boots of Lucidity
You must enter a number corresponding to an item in the list.

--Current Inventory--


1. Rabadon's Deathcap
2. Abyssal Mask
3. Rapidfire Cannon
4. Boots of Lucidity
--Inventory--
"""
        inventory = choose_inventory(sample)
        self.assertEqual(expected, mock_output.getvalue())
 def test_choose_inventory_duplicate_return(self, mock_items, mock_output):
     sample = [
         'Rabadon\'s Deathcap', 'Abyssal Mask', 'Rapidfire Cannon',
         'Boots of Lucidity'
     ]
     expected = ['Rabadon\'s Deathcap', 'Rabadon\'s Deathcap']
     inventory = choose_inventory(sample)
     self.assertEqual(expected, inventory)
 def test_choose_inventory_same_items(self):
     items = [
         "Armor", "Shield", "Consumables", "Weapons", "Gear", "Tools",
         "Wands", "Gold"
     ]
     selected_items = dungeonsanddragons.choose_inventory(items, 4)
     for gear in selected_items:
         self.assertTrue(gear in items)
Exemple #8
0
    def test_choose_inventory_item_gets_added(self, mock_choice):
        gear_list = [
            "Rapier", "Broadsword", "Vorpal sword", "The constrictor",
            "A duck!", "giant spoon", "icingdeath", "bag of holding",
            "boomstick", "stabstick", "greaves", "gambeson", "vambraces",
            "wand of fire", "Twinkle", "Cucumber salad"
        ]

        for gear in gear_list:
            test_gear = dungeonsanddragons.choose_inventory()

            self.assertEqual(test_gear[0], gear)
    def test_choose_inventory_duplicate_print(self, mock_items, mock_output):
        sample = [
            'Rabadon\'s Deathcap', 'Abyssal Mask', 'Rapidfire Cannon',
            'Boots of Lucidity'
        ]
        expected = """Welcome to the Olde Tyme Merchant!

Here is what we have for sale:
--Current Inventory--


1. Rabadon's Deathcap
2. Abyssal Mask
3. Rapidfire Cannon
4. Boots of Lucidity
--Current Inventory--
Rabadon's Deathcap


1. Rabadon's Deathcap
2. Abyssal Mask
3. Rapidfire Cannon
4. Boots of Lucidity
--Current Inventory--
Rabadon's Deathcap
Rabadon's Deathcap


1. Rabadon's Deathcap
2. Abyssal Mask
3. Rapidfire Cannon
4. Boots of Lucidity
--Inventory--
Rabadon's Deathcap
Rabadon's Deathcap
"""
        inventory = choose_inventory(sample)
        self.assertEqual(expected, mock_output.getvalue())
 def test_choose_inventory_selection_equal_to_inventory_length(self):
     inventory = ['b', 'c', 'd', 'a', 'f', 'e']
     self.assertTrue(
         dungeonsanddragons.choose_inventory(inventory, 6) ==
         ['a', 'b', 'c', 'd', 'e', 'f'])
 def test_choose_inventory_selection_greater_than_inventory_length_expected_output(
         self, mock_stdout):
     inventory = ['a', 'b', 'c', 1, 2, 3]
     expected_output = "Selection is greater than the total number of your inventory!\n"
     dungeonsanddragons.choose_inventory(inventory, 7)
     self.assertEqual(mock_stdout.getvalue(), expected_output)
 def test_choose_inventory_selection_greater_than_inventory_length(self):
     inventory = ['a', 'b', 'c', 1, 2, 3]
     self.assertIs(dungeonsanddragons.choose_inventory(inventory, 7), None)
 def test_choose_inventory_negative_selection_expected_output(
         self, mock_stdout):
     inventory = ['a', 'b', 'c', 1, 2, 3]
     expected_output = "Selection must be a positive integer!\n"
     dungeonsanddragons.choose_inventory(inventory, -1)
     self.assertEqual(mock_stdout.getvalue(), expected_output)
 def test_choose_inventory_negative_selection(self):
     inventory = ['a', 'b', 'c', 1, 2, 3]
     self.assertIs(dungeonsanddragons.choose_inventory(inventory, -1), None)
 def test_expected_return(self, mock_input):
     self.assertEqual(choose_inventory(), ['Juggling Balls of JavaScript', 'Staff of Serenity'])
 def test_choose_inventory_with_empty_str(self):
     with self.assertRaises(TypeError):
         dungeonsanddragons.choose_inventory([], "")
         dungeonsanddragons.choose_inventory("", 6)
         dungeonsanddragons.choose_inventory("", "")
 def test_choose_inventory_no_selection(self):
     self.assertEqual(
         dungeonsanddragons.choose_inventory(["Gear", "Tools", "Armor"], 0),
         [])
 def test_correct_length(self):
     self.assertTrue(len(choose_inventory([1, 2, 3, 4, 5, 6], 5)) == 5)
Exemple #19
0
    def test_choose_inventory_no_items(self, mock_choice):
        test_gear = dungeonsanddragons.choose_inventory()

        self.assertEqual(len(test_gear), 0)
 def test_selection_equals_length(self):
     self.assertTrue(
         choose_inventory([5, 7, 3, 9, 2], 5) is not [5, 7, 3, 9, 2])
     self.assertEqual(choose_inventory([5, 7, 3, 9, 2], 5), [5, 7, 3, 9, 2])
 def test_selection_too_big(self):
     self.assertIsNone(choose_inventory([1, 2, 3, 4], 7))
 def test_empty_list(self):
     self.assertEqual(choose_inventory([], 0), [])
 def test_choose_inventory_selection_normal(self):
     inventory = ['b', 'c', 'd', 'a', 'f', 'e']
     new_list = dungeonsanddragons.choose_inventory(inventory, 3)
     self.assertIn(new_list[0], inventory)
     self.assertIn(new_list[1], inventory)
     self.assertIn(new_list[2], inventory)
 def test_choose_inventory_empty_list(self):
     self.assertEqual(dungeonsanddragons.choose_inventory([], 0), [])
 def test_choose_inventory_type(self):
     inventory = ['a', 'b', 'c', 'd', 'e', 'f']
     self.assertIsInstance(
         dungeonsanddragons.choose_inventory(inventory, 3), list)
 def test_choose_inventory_empty_list_selection_0(self):
     self.assertTrue(dungeonsanddragons.choose_inventory([], 0) == [])
 def test_negative_selection(self):
     self.assertIsNone(choose_inventory([1, 2, 3, 4], -5))
 def test_choose_inventory_equivalent(self):
     inventory_list = ["Armor", "Shield", "Consumables", "Weapons"]
     self.assertEqual(
         dungeonsanddragons.choose_inventory(inventory_list, 4),
         sorted(inventory_list))
Exemple #29
0
    def test_choose_inventory_invalid_items(self, mock_output, mock_choice):
        test_gear = dungeonsanddragons.choose_inventory()

        expected_output = "Sorry, we don't sell that.\nWhat would you like to purchase?\n"

        self.assertIn(expected_output, mock_output.getvalue())
 def test_choose_inventory_length(self):
     self.assertTrue(len(choose_inventory(sample_inventory, 4)), 4)