Skip to content

Commit a82addb

Browse files
committed
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(). ........
1 parent 28df4df commit a82addb

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

Lib/logging/config.py

+17-9
Original file line numberDiff line numberDiff line change
@@ -386,15 +386,21 @@ def resolve(self, s):
386386
"""
387387
name = s.split('.')
388388
used = name.pop(0)
389-
found = self.importer(used)
390-
for frag in name:
391-
used += '.' + frag
392-
try:
393-
found = getattr(found, frag)
394-
except AttributeError:
395-
self.importer(used)
396-
found = getattr(found, frag)
397-
return found
389+
try:
390+
found = self.importer(used)
391+
for frag in name:
392+
used += '.' + frag
393+
try:
394+
found = getattr(found, frag)
395+
except AttributeError:
396+
self.importer(used)
397+
found = getattr(found, frag)
398+
return found
399+
except ImportError:
400+
e, tb = sys.exc_info()[1:]
401+
v = ValueError('Cannot resolve %r: %s' % (s, e))
402+
v.__cause__, v.__traceback__ = e, tb
403+
raise v
398404

399405
def ext_convert(self, value):
400406
"""Default converter for the ext:// protocol."""
@@ -873,6 +879,8 @@ def __init__(self, rcvr, hdlr, port):
873879
def run(self):
874880
server = self.rcvr(port=self.port, handler=self.hdlr,
875881
ready=self.ready)
882+
if self.port == 0:
883+
self.port = server.server_address[1]
876884
self.ready.set()
877885
global _listener
878886
logging._acquireLock()

Lib/test/test_logging.py

+2
Original file line numberDiff line numberDiff line change
@@ -1670,6 +1670,8 @@ def setup_via_listener(self, text):
16701670
t = logging.config.listen(port)
16711671
t.start()
16721672
t.ready.wait()
1673+
# Now get the port allocated
1674+
port = t.port
16731675
t.ready.clear()
16741676
try:
16751677
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

0 commit comments

Comments
 (0)