source: trunk/game/tests/test_scriptable.py @ 290

Revision 289, 1.9 KB checked in by b0rland_parpg, 10 years ago (diff)

Ticket #67: patch by b0rland
created tests for Scriptable, Living

Line 
1#!/usr/bin/python
2
3# This file is part of PARPG.
4#
5# PARPG is free software: you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation, either version 3 of the License, or
8# (at your option) any later version.
9#
10# PARPG is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with PARPG.  If not, see <http://www.gnu.org/licenses/>.
17
18import unittest
19from scripts.objects.base import GameObject, Scriptable
20
21class  TestScriptable(unittest.TestCase):
22    def setUp(self):
23        self.script_ran1=False
24        self.script_ran2=False
25
26    def tearDown(self):
27        self.scriptable = None
28
29    def script1(self,param1,param2):
30        self.script_ran1=True
31        self.assertEqual(param1, 'param1')
32        self.assertEqual(param2, 'param2')
33
34    def script2(self,param3,param4):
35        self.script_ran2=True
36        self.assertEqual(param3, 'param3')
37        self.assertEqual(param4, 'param4')
38
39    def testScripting(self):
40        """Test Scriptable mixin scripting abilities"""
41        scriptable = Scriptable()
42        scriptable.runScript('script1')
43        self.assertFalse(self.script_ran1)
44        self.assertFalse(self.script_ran2)
45        scriptable = Scriptable({'script1':(self.script1,('param1',),{'param2':'param2'})})
46        scriptable.runScript('script1')
47        self.assertTrue(self.script_ran1)
48        self.assertFalse(self.script_ran2)
49        self.script_ran1=False
50        scriptable.setScript('script2', self.script2, ('param3',), {'param4':'param4'})
51        scriptable.runScript('script2')
52        self.assertTrue(self.script_ran2)
53        self.assertFalse(self.script_ran1)
54
55if __name__ == '__main__':
56    unittest.main()
57
Note: See TracBrowser for help on using the repository browser.