def test_first(self): """Ensure function first works correctly""" self.assertEqual(42, first([0, False, None, [], (), 42])) self.assertEqual(None, first([0, False, None, [], ()])) self.assertEqual('ohai', first([0, False, None, [], ()], default='ohai')) self.assertEqual('bc', first(re.match(regex, 'abc') for regex in ['b.*', 'a(.*)']).group(1)) self.assertEqual(4, first([1, 1, 3, 4, 5], key=lambda x: x % 2 == 0))
def test_first(self): """Ensure function first works correctly""" self.assertEqual(42, first([0, False, None, [], (), 42])) self.assertEqual(None, first([0, False, None, [], ()])) self.assertEqual('ohai', first([0, False, None, [], ()], default='ohai')) self.assertEqual( 'bc', first(re.match(regex, 'abc') for regex in ['b.*', 'a(.*)']).group(1)) self.assertEqual(4, first([1, 1, 3, 4, 5], key=lambda x: x % 2 == 0))
def setup_default_arguments(args, settings): """ Sets up args from settings or defaults """ args.url = first([args.url, settings.get('REDIS_URL'), os.environ.get('RQ_REDIS_URL')]) if (args.host or args.port or args.socket or args.db or args.password): warn('Host, port, db, password options for Redis will not be ' 'supported in future versions of RQ. ' 'Please use `REDIS_URL` or `--url` instead.', DeprecationWarning) strict_first = partial(first, key=lambda obj: obj is not None) args.host = strict_first([args.host, settings.get('REDIS_HOST'), os.environ.get('RQ_REDIS_HOST'), 'localhost']) args.port = int(strict_first([args.port, settings.get('REDIS_PORT'), os.environ.get('RQ_REDIS_PORT'), 6379])) args.socket = strict_first([args.socket, settings.get('REDIS_SOCKET'), os.environ.get('RQ_REDIS_SOCKET'), None]) args.db = strict_first([args.db, settings.get('REDIS_DB'), os.environ.get('RQ_REDIS_DB'), 0]) args.password = strict_first([args.password, settings.get('REDIS_PASSWORD'), os.environ.get('RQ_REDIS_PASSWORD')])
def setup_default_arguments(args, settings): """ Sets up args from settings or defaults """ args.url = first( [args.url, settings.get('REDIS_URL'), os.environ.get('RQ_REDIS_URL')]) if (args.host or args.port or args.socket or args.db or args.password): warn( 'Host, port, db, password options for Redis will not be ' 'supported in future versions of RQ. ' 'Please use `REDIS_URL` or `--url` instead.', DeprecationWarning) strict_first = partial(first, key=lambda obj: obj is not None) args.host = strict_first([ args.host, settings.get('REDIS_HOST'), os.environ.get('RQ_REDIS_HOST'), 'localhost' ]) args.port = int( strict_first([ args.port, settings.get('REDIS_PORT'), os.environ.get('RQ_REDIS_PORT'), 6379 ])) args.socket = strict_first([ args.socket, settings.get('REDIS_SOCKET'), os.environ.get('RQ_REDIS_SOCKET'), None ]) args.db = strict_first( [args.db, settings.get('REDIS_DB'), os.environ.get('RQ_REDIS_DB'), 0]) args.password = strict_first([ args.password, settings.get('REDIS_PASSWORD'), os.environ.get('RQ_REDIS_PASSWORD') ])