Ejemplo n.º 1
0
 def setUp(self):
     self._log = logging.getLogger( "TestLocalState" )
     self.loader = None
     self.router = None
     self.cache = LocalState( )
     return
Ejemplo n.º 2
0
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 )