annotate tests/test_lockable.py @ 53:7c6e2e39b545

Move setup_behaviour method of the Character entity to a function in fifeagent.py
author KarstenBock@gmx.net
date Sun, 04 Sep 2011 16:25:23 +0200
parents 79cb7a659414
children 0a2cc748d16b
rev   line source
0
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
2
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
3 # This file is part of PARPG.
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
4 #
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
5 # PARPG is free software: you can redistribute it and/or modify
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
6 # it under the terms of the GNU General Public License as published by
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
7 # the Free Software Foundation, either version 3 of the License, or
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
8 # (at your option) any later version.
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
9 #
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
10 # PARPG is distributed in the hope that it will be useful,
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
13 # GNU General Public License for more details.
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
14 #
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
15 # You should have received a copy of the GNU General Public License
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
16 # along with PARPG. If not, see <http://www.gnu.org/licenses/>.
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
17
50
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
18 from parpg.grease.world import BaseWorld
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
19 from parpg.grease.entity import Entity
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
20 from parpg.components import lockable
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
21
0
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
22 import unittest
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
23
50
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
24 class TestLockable(unittest.TestCase):
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
25 class Lock(Entity):
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
26 """Enity representing an Lock"""
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
27
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
28 def __init__(self, world, locked, closed):
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
29 """Constructor"""
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
30 self.lockable.locked = locked
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
31 self.lockable.closed = closed
0
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
32
50
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
33 class GameWorld(BaseWorld):
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
34 """GameWorld"""
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
35
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
36 def configure(self):
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
37 """Set up the world"""
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
38 self.components.lockable = lockable.Lockable()
0
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
39
50
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
40 def setUp(self):
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
41 unittest.TestCase.setUp(self)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
42 self.world = self.GameWorld()
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
43 self.lock = self.Lock(self.world, False, True)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
44
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
45 def tearDown(self):
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
46 self.lock = None
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
47 self.world = None
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
48
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
49 def testOpenClose(self):
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
50 lockable.open(self.lock.lockable)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
51 self.assertFalse(self.lock.lockable.closed)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
52 lockable.close(self.lock.lockable)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
53 self.assertTrue(self.lock.lockable.closed)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
54
0
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
55 def testLockUnlock(self):
50
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
56 lockable.lock(self.lock.lockable)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
57 self.assertTrue(self.lock.lockable.locked)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
58 self.assertRaises(lockable.LockedError, lockable.open, self.lock.lockable)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
59 lockable.unlock(self.lock.lockable)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
60 self.assertFalse(self.lock.lockable.locked)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
61 lockable.open(self.lock.lockable)
79cb7a659414 Added unit tests for the Lockable functions
KarstenBock@gmx.net
parents: 0
diff changeset
62 self.assertRaises(lockable.OpenError, lockable.lock, self.lock.lockable)
0
1fd2201f5c36 Initial commit of parpg-core.
M. George Hansen <technopolitica@gmail.com>
parents:
diff changeset
63