annotate tests/test_equip.py @ 137:140e5e93f026

Added ExamineContentsAction. Added "Examine Contents" to the context menu, when the object is a container and does not have a characterstats component.
author KarstenBock@gmx.net
date Fri, 30 Sep 2011 15:31:53 +0200
parents 7829eb185d6f
children 7fc3acada7e0
rev   line source
102
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
1 #!/usr/bin/env python
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
2
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
3 # This file is part of PARPG.
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
4 #
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
5 # PARPG is free software: you can redistribute it and/or modify
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
6 # it under the terms of the GNU General Public License as published by
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
7 # the Free Software Foundation, either version 3 of the License, or
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
8 # (at your option) any later version.
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
9 #
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
10 # PARPG is distributed in the hope that it will be useful,
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
13 # GNU General Public License for more details.
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
14 #
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
15 # You should have received a copy of the GNU General Public License
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
16 # along with PARPG. If not, see <http://www.gnu.org/licenses/>.
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
17
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
18 from parpg.bGrease.world import BaseWorld
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
19 from parpg.bGrease.entity import Entity
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
20 from parpg.components import Equipable
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
21 from parpg.components import Equip
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
22 from parpg.components import equip
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
23
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
24 import unittest
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
25
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
26 class TestEquip(unittest.TestCase):
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
27
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
28 class GameWorld(BaseWorld):
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
29 """GameWorld"""
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
30
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
31 def configure(self):
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
32 """Set up the world"""
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
33 self.components.equipable = Equipable()
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
34 self.components.equip = Equip()
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
35
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
36 def setUp(self):
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
37 unittest.TestCase.setUp(self)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
38 self.world = self.GameWorld()
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
39 self.wearer = Entity(self.world)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
40 self.arms_item = Entity(self.world)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
41 self.arms_item.equipable.possible_slots = ["l_arm", "r_arm"]
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
42 self.l_arm_item = Entity(self.world)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
43 self.l_arm_item.equipable.possible_slots = ["l_arm"]
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
44 self.r_arm_item = Entity(self.world)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
45 self.r_arm_item.equipable.possible_slots = ["r_arm"]
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
46 self.t_arm_item = Entity(self.world)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
47 self.t_arm_item.equipable.possible_slots = ["t_arm"]
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
48
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
49 def test_equip_and_take(self):
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
50 print "Raise SlotInvalidError"
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
51 self.assertRaises(equip.SlotInvalidError, equip.equip, self.wearer.equip, self.t_arm_item.equipable, "t_arm")
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
52 print "Raise CannotBeEquippedInSlot"
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
53 self.assertRaises(equip.CannotBeEquippedInSlot, equip.equip, self.wearer.equip, self.l_arm_item.equipable, "r_arm")
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
54 print "Equip l_arm"
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
55 equip.equip(self.wearer.equip, self.l_arm_item.equipable, "l_arm")
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
56 print "Equip r_arm"
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
57 equip.equip(self.wearer.equip, self.r_arm_item.equipable, "r_arm")
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
58 self.assertIsNotNone(self.l_arm_item.equipable.wearer)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
59 print "Raise AlreadyEquipped"
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
60 self.assertRaises(equip.AlreadyEquippedError, equip.equip, self.wearer.equip, self.l_arm_item.equipable, "r_arm")
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
61 print "Switch r_arm with arms"
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
62 equip.equip(self.wearer.equip, self.arms_item.equipable, "r_arm")
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
63 self.assertIsNone(self.r_arm_item.equipable.wearer)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
64 self.assertIsNotNone(self.arms_item.equipable.wearer)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
65 print "Take l_arm"
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
66 equip.take_equipable( self.wearer.equip, self.l_arm_item.equipable.in_slot)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
67 self.assertIsNone(self.l_arm_item.equipable.wearer)
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
68
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
69 def tearDown(self):
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
70 self.world = None
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
71 self.wearer = None
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
72 self.arms_item = None
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
73 self.l_arm_item = None
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
74 self.r_arm_item = None
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
75 self.t_arm_item = None
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
76
334f7aea6386 Added unit test for the equip and equipable components.
KarstenBock@gmx.net
parents:
diff changeset
77