class TestCraftingFurnace(unittest.TestCase): """ Test basic crafting functionality. Assumes that the basic cobblestone->furnace recipe is present and enabled. This recipe was chosen because it is the simplest recipe that requires a 3x3 crafting table. """ def setUp(self): self.i = Workbench() def test_trivial(self): pass def test_check_crafting(self): self.i.crafting[0] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[1] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[2] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[3] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[5] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[6] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[7] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[8] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) # Force crafting table to be rechecked. self.i.select(5) self.assertTrue(self.i.recipe) self.assertEqual(self.i.recipe_offset, 0) self.assertEqual(self.i.crafted[0], (bravo.blocks.blocks["furnace"].slot, 0, 1)) def test_check_crafting_multiple(self): self.i.crafting[0] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[1] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[2] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[3] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[5] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[6] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[7] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[8] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) # Force crafting table to be rechecked. self.i.select(5) self.assertEqual(self.i.crafted[0], (bravo.blocks.blocks["furnace"].slot, 0, 1))
class TestCraftingFurnace(unittest.TestCase): """ Test basic crafting functionality. Assumes that the basic cobblestone->furnace recipe is present and enabled. This recipe was chosen because it is the simplest recipe that requires a 3x3 crafting table. """ def setUp(self): recipes = retrieve_plugins(IRecipe) if "furnace" not in recipes: raise unittest.SkipTest("Plugin not present") self.i = Workbench() def test_trivial(self): pass def test_check_crafting(self): self.i.crafting[0] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[1] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[2] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[3] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[5] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[6] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[7] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[8] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) # Force crafting table to be rechecked. self.i.select(5) self.assertTrue(self.i.recipe) self.assertEqual(self.i.recipe_offset, 0) self.assertEqual(self.i.crafted[0], (bravo.blocks.blocks["furnace"].slot, 0, 1)) def test_check_crafting_multiple(self): self.i.crafting[0] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[1] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[2] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[3] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[5] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[6] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[7] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[8] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) # Force crafting table to be rechecked. self.i.select(5) self.assertEqual(self.i.crafted[0], (bravo.blocks.blocks["furnace"].slot, 0, 1))
class TestCraftingShovel(unittest.TestCase): """ Test basic crafting functionality. Assumes that the basic shovel recipe is present and enabled. This recipe was chosen because shovels broke at one point and we couldn't figure out why. """ def setUp(self): recipes = retrieve_plugins(IRecipe) if "stone-shovel" not in recipes: raise unittest.SkipTest("Plugin not present") self.i = Workbench() def test_trivial(self): pass def test_check_crafting(self): self.i.crafting[0] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 1) self.i.crafting[3] = Slot(bravo.blocks.items["stick"].slot, 0, 1) self.i.crafting[6] = Slot(bravo.blocks.items["stick"].slot, 0, 1) # Force crafting table to be rechecked. self.i.select(2) self.assertTrue(self.i.recipe) self.assertEqual(self.i.recipe_offset, 0) self.assertEqual(self.i.crafted[0], (bravo.blocks.items["stone-shovel"].slot, 0, 1)) def test_check_crafting_multiple(self): self.i.crafting[0] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[3] = Slot(bravo.blocks.items["stick"].slot, 0, 2) self.i.crafting[6] = Slot(bravo.blocks.items["stick"].slot, 0, 2) # Force crafting table to be rechecked. self.i.select(2) # Only checking count of crafted table; the previous test assured that # the recipe was selected. self.assertEqual(self.i.crafted[0], (bravo.blocks.items["stone-shovel"].slot, 0, 1)) def test_check_crafting_offset(self): self.i.crafting[1] = Slot(bravo.blocks.blocks["cobblestone"].slot, 0, 2) self.i.crafting[4] = Slot(bravo.blocks.items["stick"].slot, 0, 2) self.i.crafting[7] = Slot(bravo.blocks.items["stick"].slot, 0, 2) # Force crafting table to be rechecked. self.i.select(1) self.assertTrue(self.i.recipe) self.assertEqual(self.i.recipe_offset, 1)
class TestWorkbenchIntegration(unittest.TestCase): """ select() numbers Crafted[0] = 0 Crafting[0-8] = 1-9 Storage[0-26] = 10-36 Holdables[0-8] = 37-45 """ def setUp(self): self.i = Workbench() def test_trivial(self): pass def test_craft_golden_apple(self): #Add 8 gold blocks and 1 apple to inventory self.i.add(bravo.blocks.blocks["gold"].key, 8) self.i.add(bravo.blocks.items["apple"].key, 1) #Select all the gold, in the workbench, unlike Euqiopment(), holdables start at 37 self.i.select(37) self.assertEqual(self.i.selected, (bravo.blocks.blocks["gold"].slot, 0, 8)) #Select-alternate into crafting[0] and check for amounts self.i.select(1, True) self.assertEqual(self.i.selected, (bravo.blocks.blocks["gold"].slot, 0, 7)) self.assertEqual(self.i.crafting[0], (bravo.blocks.blocks["gold"].slot, 0, 1)) #Select-alternate gold into crafting[1] and check self.i.select(2, True) self.assertEqual(self.i.selected, (bravo.blocks.blocks["gold"].slot, 0, 6)) self.assertEqual(self.i.crafting[1], (bravo.blocks.blocks["gold"].slot, 0, 1)) #Select-alternate gold into crafting[2] and check self.i.select(3, True) self.assertEqual(self.i.selected, (bravo.blocks.blocks["gold"].slot, 0, 5)) self.assertEqual(self.i.crafting[2], (bravo.blocks.blocks["gold"].slot, 0, 1)) #Select-alternate gold into crafting[3] and check self.i.select(4, True) self.assertEqual(self.i.selected, (bravo.blocks.blocks["gold"].slot, 0, 4)) self.assertEqual(self.i.crafting[3], (bravo.blocks.blocks["gold"].slot, 0, 1)) #Select-alternate gold into crafting[5] and check, skipping [4] for the apple later self.i.select(6, True) self.assertEqual(self.i.selected, (bravo.blocks.blocks["gold"].slot, 0, 3)) self.assertEqual(self.i.crafting[5], (bravo.blocks.blocks["gold"].slot, 0, 1)) #Select-alternate gold into crafting[6] and check self.i.select(7, True) self.assertEqual(self.i.selected, (bravo.blocks.blocks["gold"].slot, 0, 2)) self.assertEqual(self.i.crafting[6], (bravo.blocks.blocks["gold"].slot, 0, 1)) #Select-alternate gold into crafting[7] and check self.i.select(8, True) self.assertEqual(self.i.selected, (bravo.blocks.blocks["gold"].slot, 0, 1)) self.assertEqual(self.i.crafting[7], (bravo.blocks.blocks["gold"].slot, 0, 1)) #Select-alternate gold into crafting[8] and check self.i.select(9, True) self.assertEqual(self.i.selected, None) self.assertEqual(self.i.crafting[8], (bravo.blocks.blocks["gold"].slot, 0, 1)) #All gold should be placed now, time to select the apple self.i.select(38) self.assertEqual(self.i.selected, (bravo.blocks.items["apple"].slot, 0, 1)) #Place the apple into crafting[4] self.i.select(5) self.assertEqual(self.i.selected, None) self.assertEqual(self.i.crafting[4], (bravo.blocks.items["apple"].slot, 0, 1)) #Select golden-apples from select(0) self.i.select(0) self.assertEqual(self.i.selected, (bravo.blocks.items["golden-apple"].slot, 0, 1)) #Select the golden-apple into the first holdable slot, select(37)/holdables[0] self.i.select(37) self.assertEqual(self.i.selected, None) self.assertEqual(self.i.holdables[0], (bravo.blocks.items["golden-apple"].slot, 0, 1)) self.assertEqual(self.i.crafting[0], None) self.assertEqual(self.i.crafted[0], None)