?? testsimserver.py
字號:
# $Id: testsimserver.py,v 1.4 2002/02/04 15:52:23 marijn Exp $# Tester programs with the airtraffic program.# Copyright (C) 2000,1,2 Marijn Vriens <marijn@sanity.dhs.org>## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAimport unittestimport simserverimport simdataimport simuserimport fakedatadef suite(): user = unittest.TestSuite() user.addTest(testSimServerUser("connect")) user.addTest(testSimServerUser("connect_nicktaken")) user.addTest(testSimServerUser("disconnect")) user.addTest(testSimServerUser("disconnect_noexist")) data = unittest.TestSuite() data.addTest(testSimServerData("subscribe")) data.addTest(testSimServerData("subscribe_noexist_user")) data.addTest(testSimServerData("subscribe_noexist_obj")) data.addTest(testSimServerData("unsubscribe")) data.addTest(testSimServerData("unsubscribe_noexist_user")) data.addTest(testSimServerData("unsubscribe_noexist_obj")) data.addTest(testSimServerData("getUpdate")) data.addTest(testSimServerData("giveOrder")) ticker = unittest.TestSuite() ticker.addTest(testSimServerTicker('test_addPlane')) ticker.addTest(testSimServerTicker('update')) suite = unittest.TestSuite() suite.addTest(user) suite.addTest(data) suite.addTest(ticker) return suiteclass testSimServerUser(unittest.TestCase): def setUp(self): self.user = simuser.SimUsers() self.data = simdata.SimData() self.ss = simserver.SimServer_Sim_Impl(self.data, self.user) self.reg = self.ss.connect("tester") # make atleast one object. def connect(self): # check the generated object. assert(self.reg) assert(self.user.has_key(self.reg)) assert(self.user[self.reg].nick() == 'tester') def connect_nicktaken(self): try: r = self.ss.connect("tester") except simserver.SimulationServer.NickTaken: pass else: self.fail("Should have emited exception") def disconnect(self): self.ss.disconnect(self.reg) self.failIf(self.user.has_key(self.reg)) def disconnect_noexist(self): try: self.ss.disconnect(42) except simserver.SimulationServer.NoExist: pass else: self.fail("Should have emited exception")class testSimServerData(unittest.TestCase): def setUp(self): self.user = simuser.SimUsers() self.data = simdata.SimData() self.meta = fakeMeta() self.ss = simserver.SimServer_Sim_Impl(self.data, self.user) self.tick = simserver.SimServer_Ticker_Impl(self.meta, self.data, self.user) self.tick._addPlane(self.data) # add an object. self.reg = self.ss.connect("tester") # create a user. def subscribe(self): obj = self.data.keys()[0] self.ss.subscribe(self.reg, obj) assert(self.user[self.reg]) def subscribe_noexist_user(self): obj = self.data.keys()[0] try: self.ss.subscribe(42, obj) except simserver.SimulationServer.NoExist: pass else: self.fail("Should have emited exception") def subscribe_noexist_obj(self): try: self.ss.subscribe(self.reg, 42) except simserver.SimulationServer.NoExist: pass else: self.fail("Should have emited exception") def unsubscribe(self): obj = self.data.keys()[0] self.ss.subscribe(self.reg, obj) assert(self.user[self.reg]) self.ss.unsubscribe(self.reg, obj)# assert(not self.user[self.reg]) def unsubscribe_noexist_user(self): obj = self.data.keys()[0] try: self.ss.unsubscribe(42, obj) except simserver.SimulationServer.NoExist: pass else: self.fail("Should have emited exception") def unsubscribe_noexist_obj(self): try: self.ss.subscribe(self.reg, 42) except simserver.SimulationServer.NoExist: pass else: self.fail("Should have emited exception") def getUpdate(self): obj = self.data.keys()[0] self.ss.subscribe(self.reg, obj) r = self.ss.getUpdate(self.reg) assert(r.__class__ == simserver.SimulationServer.UpdateType) assert(r.planeUpdateList != None) assert(r.objsEntryList != None) assert(r.objsLeaveList != None) def giveOrder(self): obj = self.data.keys()[0] self.ss.subscribe(self.reg, obj) order = fakedata.genOrder(90, 100, 1000) retOrder = self.ss.giveOrder(self.reg, obj, order) assert(retOrder.speed == 100) assert(retOrder.heading == 90) assert(retOrder.height == 1000) class testSimServerTicker(unittest.TestCase): def setUp(self): self.meta = fakeMeta() self.data = simdata.SimData() self.user = {} self.ss = simserver.SimServer_Ticker_Impl(self.meta, self.data, self.user) def test_addPlane(self): self.ss._addPlane(self.data) assert(len(self.data) == 1) def update(self): self.ss._metaPing = 0 # force pinging. self.ss.update() assert(self.meta.v == 1) class fakeMeta: def __init__(self): self.v = 0 def ping(self): self.v = 1 # $Log: testsimserver.py,v $# Revision 1.4 2002/02/04 15:52:23 marijn# Added order receiving methods## Revision 1.3 2002/01/13 16:05:58 marijn# All updates now go via getUpdate(). Split genIdl into Full and Reduced## Revision 1.2 2002/01/12 23:53:56 marijn# Refactored simuser and simdata## Revision 1.1 2001/12/25 01:55:50 marijn# added SimServer, SimUser and SimData unit tests#
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -