Merged revisions 80712,81651 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80712 | vinay.sajip | 2010-05-03 10:11:53 -0500 (Mon, 03 May 2010) | 1 line

  Issue #8576: logging updated to remove usage of find_unused_port().
........
  r81651 | vinay.sajip | 2010-06-02 05:05:31 -0500 (Wed, 02 Jun 2010) | 1 line

  Logging: improved error reporting for BaseConfigurator.resolve().
........
This commit is contained in:
Benjamin Peterson 2010-06-27 20:54:28 +00:00
parent 28df4df079
commit a82addb5f3
2 changed files with 19 additions and 9 deletions

View File

@ -386,15 +386,21 @@ class BaseConfigurator(object):
"""
name = s.split('.')
used = name.pop(0)
found = self.importer(used)
for frag in name:
used += '.' + frag
try:
found = getattr(found, frag)
except AttributeError:
self.importer(used)
found = getattr(found, frag)
return found
try:
found = self.importer(used)
for frag in name:
used += '.' + frag
try:
found = getattr(found, frag)
except AttributeError:
self.importer(used)
found = getattr(found, frag)
return found
except ImportError:
e, tb = sys.exc_info()[1:]
v = ValueError('Cannot resolve %r: %s' % (s, e))
v.__cause__, v.__traceback__ = e, tb
raise v
def ext_convert(self, value):
"""Default converter for the ext:// protocol."""
@ -873,6 +879,8 @@ def listen(port=DEFAULT_LOGGING_CONFIG_PORT):
def run(self):
server = self.rcvr(port=self.port, handler=self.hdlr,
ready=self.ready)
if self.port == 0:
self.port = server.server_address[1]
self.ready.set()
global _listener
logging._acquireLock()

View File

@ -1670,6 +1670,8 @@ class ConfigDictTest(BaseTest):
t = logging.config.listen(port)
t.start()
t.ready.wait()
# Now get the port allocated
port = t.port
t.ready.clear()
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)