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')))