def setUp(self): self._log = logging.getLogger( "TestLocalState" ) self.loader = None self.router = None self.cache = LocalState( ) return
class TestLocalState(unittest.TestCase): def setUp(self): self._log = logging.getLogger( "TestLocalState" ) self.loader = None self.router = None self.cache = LocalState( ) return def tearDown(self): self.cache.stop(self.router) if self.loader: self.loader.stop() # all tasks self.loader = None self.router = None return # Actual tests follow def testLocalState(self): self.loader = EventRouterLoader() self.loader.loadHandlers( getDictFromXmlString(testConfigLocalState) ) self.loader.start() # all tasks self.router = self.loader.getEventRouter() self.cache.start( self.router ); # Fiddle time, i.e. speed it up. self.router.publish( "TestLocalState", Event( "http://id.webbrick.co.uk/events/webbrick/DI", "webbrick/GarageA/DI/8", { "state": 0 } ) ) self.router.publish( "TestLocalState", Event( "http://id.webbrick.co.uk/events/webbrick/DI", "webbrick/GarageA/DI/9", { "state": 0 } ) ) res = self.cache.queryCache( "Garage/Door/1" ) self.assertEqual( res["stsval"], "0" ) self.assertEqual( res["stserr"], None ) self.router.publish( "TestLocalState", Event( "http://id.webbrick.co.uk/events/webbrick/DI", "webbrick/GarageA/DI/8", { "state": 0 } ) ) self.router.publish( "TestLocalState", Event( "http://id.webbrick.co.uk/events/webbrick/DI", "webbrick/GarageA/DI/9", { "state": 1 } ) ) res = self.cache.queryCache( "Garage/Door/1" ) self.assertEqual( res["stsval"], "1" ) self.assertEqual( res["stserr"], None ) self.router.publish( "TestLocalState", Event( "http://id.webbrick.co.uk/events/webbrick/DI", "webbrick/GarageA/DI/8", { "state": 1 } ) ) self.router.publish( "TestLocalState", Event( "http://id.webbrick.co.uk/events/webbrick/DI", "webbrick/GarageA/DI/9", { "state": 0 } ) ) res = self.cache.queryCache( "Garage/Door/1" ) self.assertEqual( res["stsval"], "2" ) self.assertEqual( res["stserr"], None ) self.router.publish( "TestLocalState", Event( "http://id.webbrick.co.uk/events/webbrick/DI", "webbrick/GarageA/DI/8", { "state": 1 } ) ) self.router.publish( "TestLocalState", Event( "http://id.webbrick.co.uk/events/webbrick/DI", "webbrick/GarageA/DI/9", { "state": 1 } ) ) res = self.cache.queryCache( "Garage/Door/1" ) self.assertEqual( res["stsval"], "3" ) self.assertEqual( res["stserr"], None ) res = self.cache.queryCache( "Garage/Door/2" ) self.assertEqual( res["stsval"], None ) self.assertNotEqual( res["stserr"], None )