Ejemplo n.º 1
0
    def test_number_service(self):
        
        ## For this test, setup these access keys in the
        ## Redis Server:
        ##
        ## redis-cli set assignment_class:test-ac-authoritative authoritative
        ## redis-cli set assignment_class:test-ac-registered registered
        ## redis-cli set assignment_class:fe78d179-8e61-4cc5-ba7b-263d8d3602b9 unregistered
        
        from ambry.identity import NumberServer
        from ambry.run import  get_runconfig
        from ambry.dbexceptions import ConfigurationError

        rc = get_runconfig()

        try:
            ng = rc.service('numbers')
        except ConfigurationError:
            return

        # You'll need to run a local service at this address
        host = "numbers"
        port = 7977
        unregistered_key = 'fe78d179-8e61-4cc5-ba7b-263d8d3602b9'

        ns = NumberServer(host=host, port=port, key='test-ac-registered')

        n = ns.next()
        self.assertEqual(6,len(str(n)))

        # Next request is authoritative, so no need to sleep here.


        ns = NumberServer(host=host, port=port, key='test-ac-authoritative')

        n = ns.next()
        self.assertEqual(4,len(str(n)))

        ns.sleep() # Avoid being rate limited

        # Override to use a local numbers server:


        ns = NumberServer(host=host, port=port, key= unregistered_key)
        n = ns.next()
        self.assertEqual(8,len(str(n)))

        n1 = ns.find('foobar')

        self.assertEquals(str(n1), str(ns.find('foobar')))
        self.assertEquals(str(n1), str(ns.find('foobar')))