class PlayerTestCase(TestCase): @patch("tekmate.items.Item.fill_attributes") def setUp(self, mock_fill): mock_fill.return_value = None self.player = Player() self.create_obtainable_item() self.create_usable_item() self.create_invalid_items() def create_obtainable_item(self): self.obtainable_item = Item([]) self.obtainable_item.obtainable = True def create_usable_item(self): self.usable_item = Item([]) self.usable_item.usable = True def create_invalid_items(self): self.not_usable_item = Item([]) self.not_obtainable_item = Item([]) def test_player_position_defaults_at_zero_450(self): self.assertEqual(self.player.position, (0, 400)) def test_when_picking_up_obtainable_item_size_of_bag_should_be_one(self): self.player.add_item(self.obtainable_item) self.assertEqual(len(self.player.bag), 1) def test_when_picking_up_obtainable_item_parent_container_should_be_changed_to_bag( self): self.player.add_item(self.obtainable_item) self.assertIs(self.obtainable_item.parent_container, self.player.bag) def test_when_looked_at_item_in_bag_description_should_be_returned(self): self.player.add_item(self.obtainable_item) self.assertEqual("INSPECT", self.player.look_at(self.obtainable_item)) def test_when_looked_at_item_in_space_inspect_message_should_be_returned( self): self.assertEqual(self.player.look_at(self.obtainable_item), self.obtainable_item.get_look_at_message()) def test_when_trigger_item_combination_is_called_item_combine_functions_are_called( self): mock_item1 = Mock(spec=Item) mock_item2 = Mock(spec=Item) self.player.trigger_item_combination(mock_item1, mock_item2) mock_item1.combine.assert_called_with(mock_item2) mock_item2.combine.assert_called_with(mock_item1) @patch("tekmate.items.Item.fill_attributes") def test_when_added_non_obtainable_item_return_false(self, mock_fill): mock_fill.return_value = None any_item = Item([]) self.assertFalse(self.player.add_item(any_item))
class PlayerTestCase(TestCase): @patch("tekmate.items.Item.fill_attributes") def setUp(self, mock_fill): mock_fill.return_value = None self.player = Player() self.create_obtainable_item() self.create_usable_item() self.create_invalid_items() def create_obtainable_item(self): self.obtainable_item = Item([]) self.obtainable_item.obtainable = True def create_usable_item(self): self.usable_item = Item([]) self.usable_item.usable = True def create_invalid_items(self): self.not_usable_item = Item([]) self.not_obtainable_item = Item([]) def test_player_position_defaults_at_zero_450(self): self.assertEqual(self.player.position, (0, 400)) def test_when_picking_up_obtainable_item_size_of_bag_should_be_one(self): self.player.add_item(self.obtainable_item) self.assertEqual(len(self.player.bag), 1) def test_when_picking_up_obtainable_item_parent_container_should_be_changed_to_bag(self): self.player.add_item(self.obtainable_item) self.assertIs(self.obtainable_item.parent_container, self.player.bag) def test_when_looked_at_item_in_bag_description_should_be_returned(self): self.player.add_item(self.obtainable_item) self.assertEqual("INSPECT", self.player.look_at(self.obtainable_item)) def test_when_looked_at_item_in_space_inspect_message_should_be_returned(self): self.assertEqual(self.player.look_at(self.obtainable_item), self.obtainable_item.get_look_at_message()) def test_when_trigger_item_combination_is_called_item_combine_functions_are_called(self): mock_item1 = Mock(spec=Item) mock_item2 = Mock(spec=Item) self.player.trigger_item_combination(mock_item1, mock_item2) mock_item1.combine.assert_called_with(mock_item2) mock_item2.combine.assert_called_with(mock_item1) @patch("tekmate.items.Item.fill_attributes") def test_when_added_non_obtainable_item_return_false(self, mock_fill): mock_fill.return_value = None any_item = Item([]) self.assertFalse(self.player.add_item(any_item))
def test_when_getting_obtainable_message_of_non_obtainable_item_get_not_obtainable_message( self, mock_fill): mock_fill.return_value = None any_item = Item([]) self.assertEqual(any_item.add_not_obtainable_message, any_item.get_add_message())
def test_when_parent_container_is_none_AssertionError_is_raised(self): with self.assertRaises(AssertionError): Item(None)
def test_when_key_combined_other_than_door_raise_exception( self, mock_fill): mock_fill.return_value = None any_item = Item([]) comb = self.key.is_combination_possible(any_item) self.assertFalse(comb[0])
def test_when_letter_combined_other_than_door_return_false( self, mock_fill): mock_fill.return_value = None any_item = Item([]) comb = self.letter.is_combination_possible(any_item) self.assertFalse(comb[0])
def test_when_combined_with_other_than_telephone_note_return_false( self, mock_fill): mock_fill.return_value = None any_item = Item([]) comb = self.telephone.is_combination_possible(any_item) self.assertFalse(comb[0])
def test_when_combined_with_other_than_door_retrn_false(self, mock_fill): mock_fill.return_value = None obj = Item([]) comb = self.paperclip.is_combination_possible(obj) self.assertFalse(comb[0])
def create_obtainable_item(self): self.obtainable_item = Item([]) self.obtainable_item.obtainable = True
class ItemTestCase(TestCase): @patch("tekmate.items.Item.fill_attributes") def setUp(self, mock_fill): mock_fill.return_value = None self.container = [] self.item = Item(self.container) def test_can_create_item(self): self.assertEqual("NAME", self.item.get_name()) def test_when_created_item_should_be_inside_parent_container(self): self.assertIn(self.item, self.item.parent_container) def test_not_obtainable_by_default(self): self.assertFalse(self.item.obtainable) def test_not_usable_by_default(self): self.assertFalse(self.item.usable) def test_looked_at_door_variable_status(self): self.assertEqual(self.item.looked_at, False) self.item.looked_at = True self.assertEqual(self.item.looked_at, True) def test_when_player_use_unusable_item_return_use_not_usable_message(self): self.item.usable = False self.assertEqual(self.item.get_use_message(), "NOT_USABLE") def test_when_parent_container_is_none_AssertionError_is_raised(self): with self.assertRaises(AssertionError): Item(None) def test_can_combine(self): item = self.item class MockItem(Item): def __init__(self, parent_container): super(MockItem, self).__init__(parent_container) self.called = False def combine(self, other): self.called = other is item def fill_attributes(self): pass mock_item = MockItem([]) mock_item.combine(self.item) self.assertTrue(mock_item.called) def test_when_remove_from_container_parent_container_loses_item(self): self.item.remove_from_parent_container() self.assertNotIn(self.item, self.container) def test_when_add_to_container_container_should_change(self): container_new = [] self.item.move_to_container(container_new) self.assertIn(self.item, container_new) self.assertNotIn(self.item, self.container) def test_when_looking_at_item_looked_at_must_be_true(self): self.item.get_look_at_message() self.assertTrue(self.item.looked_at) def test_when_inspecting_an_item_return_inspect_message(self): self.assertEqual(self.item.get_inspect_message(), "INSPECT") @patch("tekmate.items.load_item_data") def test_when_filling_attributes_values_are_set_correctly( self, mock_item_load_data): mock_item_load_data.return_value = { u'use': u'USE', u'inspect': u'INSPECT', u'look_at': u'LOOK_AT', u'usable': u'USABLE', u'obtainable': u'OBTAINABLE' } self.item.fill_attributes() self.assertEqual(self.item.get_use_message(), "USE") self.assertEqual(self.item.inspect_message, "INSPECT") self.assertEqual(self.item.get_look_at_message(), "LOOK_AT") self.assertTrue(self.item.usable) self.assertTrue(self.item.obtainable) @patch("tekmate.items.Item.fill_attributes") def test_when_getting_obtainable_message_of_non_obtainable_item_get_not_obtainable_message( self, mock_fill): mock_fill.return_value = None any_item = Item([]) self.assertEqual(any_item.add_not_obtainable_message, any_item.get_add_message()) @patch("tekmate.items.Item.fill_attributes") def test_when_getting_obtainable_message_of_obtainable_item_get_add_message( self, mock_fill): mock_fill.return_value = None any_item = Item([]) any_item.obtainable = True self.assertEqual(any_item.add_message, any_item.get_add_message())
def test_when_getting_obtainable_message_of_obtainable_item_get_add_message(self, mock_fill): mock_fill.return_value = None any_item = Item([]) any_item.obtainable = True self.assertEqual(any_item.add_message, any_item.get_add_message())
def setUp(self, mock_fill): mock_fill.return_value = None self.container = [] self.item = Item(self.container)
class ItemTestCase(TestCase): @patch("tekmate.items.Item.fill_attributes") def setUp(self, mock_fill): mock_fill.return_value = None self.container = [] self.item = Item(self.container) def test_can_create_item(self): self.assertEqual("NAME", self.item.get_name()) def test_when_created_item_should_be_inside_parent_container(self): self.assertIn(self.item, self.item.parent_container) def test_not_obtainable_by_default(self): self.assertFalse(self.item.obtainable) def test_not_usable_by_default(self): self.assertFalse(self.item.usable) def test_looked_at_door_variable_status(self): self.assertEqual(self.item.looked_at, False) self.item.looked_at = True self.assertEqual(self.item.looked_at, True) def test_when_player_use_unusable_item_return_use_not_usable_message(self): self.item.usable = False self.assertEqual(self.item.get_use_message(), "NOT_USABLE") def test_when_parent_container_is_none_AssertionError_is_raised(self): with self.assertRaises(AssertionError): Item(None) def test_can_combine(self): item = self.item class MockItem(Item): def __init__(self, parent_container): super(MockItem, self).__init__(parent_container) self.called = False def combine(self, other): self.called = other is item def fill_attributes(self): pass mock_item = MockItem([]) mock_item.combine(self.item) self.assertTrue(mock_item.called) def test_when_remove_from_container_parent_container_loses_item(self): self.item.remove_from_parent_container() self.assertNotIn(self.item, self.container) def test_when_add_to_container_container_should_change(self): container_new = [] self.item.move_to_container(container_new) self.assertIn(self.item, container_new) self.assertNotIn(self.item, self.container) def test_when_looking_at_item_looked_at_must_be_true(self): self.item.get_look_at_message() self.assertTrue(self.item.looked_at) def test_when_inspecting_an_item_return_inspect_message(self): self.assertEqual(self.item.get_inspect_message(), "INSPECT") @patch("tekmate.items.load_item_data") def test_when_filling_attributes_values_are_set_correctly(self, mock_item_load_data): mock_item_load_data.return_value = {u'use': u'USE', u'inspect': u'INSPECT', u'look_at': u'LOOK_AT', u'usable': u'USABLE', u'obtainable': u'OBTAINABLE'} self.item.fill_attributes() self.assertEqual(self.item.get_use_message(), "USE") self.assertEqual(self.item.inspect_message, "INSPECT") self.assertEqual(self.item.get_look_at_message(), "LOOK_AT") self.assertTrue(self.item.usable) self.assertTrue(self.item.obtainable) @patch("tekmate.items.Item.fill_attributes") def test_when_getting_obtainable_message_of_non_obtainable_item_get_not_obtainable_message(self, mock_fill): mock_fill.return_value = None any_item = Item([]) self.assertEqual(any_item.add_not_obtainable_message, any_item.get_add_message()) @patch("tekmate.items.Item.fill_attributes") def test_when_getting_obtainable_message_of_obtainable_item_get_add_message(self, mock_fill): mock_fill.return_value = None any_item = Item([]) any_item.obtainable = True self.assertEqual(any_item.add_message, any_item.get_add_message())
def test_when_added_non_obtainable_item_return_false(self, mock_fill): mock_fill.return_value = None any_item = Item([]) self.assertFalse(self.player.add_item(any_item))
def create_invalid_items(self): self.not_usable_item = Item([]) self.not_obtainable_item = Item([])
def create_usable_item(self): self.usable_item = Item([]) self.usable_item.usable = True