diff options
author | Tim Peters <tim.peters@gmail.com> | 2006-07-27 20:47:24 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2006-07-27 20:47:24 (GMT) |
commit | 08310d6cb7d6c00733a69c62121236602e31c999 (patch) | |
tree | 0312fb76eb13502eb153dc5722dc102a5f1a0f4e /Lib | |
parent | cff784caa75b78a502453484931c8e64542a018c (diff) | |
download | cpython-08310d6cb7d6c00733a69c62121236602e31c999.zip cpython-08310d6cb7d6c00733a69c62121236602e31c999.tar.gz cpython-08310d6cb7d6c00733a69c62121236602e31c999.tar.bz2 |
check_node(): stop spraying mystery output to stderr.
When a node number disagrees, keep track of all sources & the
node numbers they reported, and stick all that in the error message.
Changed all callers to supply a non-empty "source" argument; made
the "source" argument non-optional.
On my box, test_uuid still fails, but with the less confusing output:
AssertionError: different sources disagree on node:
from source 'getnode1', node was 00038a000015
from source 'getnode2', node was 00038a000015
from source 'ipconfig', node was 001111b2b7bf
Only the last one appears to be correct; e.g.,
C:\Code\python\PCbuild>getmac
Physical Address Transport Name
=================== ==========================================================
00-11-11-B2-B7-BF \Device\Tcpip_{190FB163-5AFD-4483-86A1-2FE16AC61FF1}
62-A1-AC-6C-FD-BE \Device\Tcpip_{8F77DF5A-EA3D-4F1D-975E-D472CEE6438A}
E2-1F-01-C6-5D-88 \Device\Tcpip_{CD18F76B-2EF3-409F-9B8A-6481EE70A1E4}
I can't find anything on my box with MAC 00-03-8a-00-00-15, and am
not clear on where that comes from.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_uuid.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index ad4d5ff..3842bb9 100644 --- a/Lib/test/test_uuid.py +++ b/Lib/test/test_uuid.py @@ -11,6 +11,7 @@ def importable(name): class TestUUID(TestCase): last_node = None + source2node = {} def test_UUID(self): equal = self.assertEqual @@ -266,7 +267,7 @@ class TestUUID(TestCase): badtype(lambda: setattr(u, 'fields', f)) badtype(lambda: setattr(u, 'int', i)) - def check_node(self, node, source=''): + def check_node(self, node, source): individual_group_bit = (node >> 40L) & 1 universal_local_bit = (node >> 40L) & 2 message = "%012x doesn't look like a real MAC address" % node @@ -275,13 +276,15 @@ class TestUUID(TestCase): self.assertNotEqual(node, 0, message) self.assertNotEqual(node, 0xffffffffffffL, message) self.assert_(0 <= node, message) - self.assert_(node < 1<<48L, message) + self.assert_(node < (1L << 48), message) - import sys - if source: - sys.stderr.write('(%s: %012x)' % (source, node)) + TestUUID.source2node[source] = node if TestUUID.last_node: - self.assertEqual(TestUUID.last_node, node, 'inconsistent node IDs') + if TestUUID.last_node != node: + msg = "different sources disagree on node:\n" + for s, n in TestUUID.source2node.iteritems(): + msg += " from source %r, node was %012x\n" % (s, n) + self.fail(msg) else: TestUUID.last_node = node @@ -319,10 +322,10 @@ class TestUUID(TestCase): self.check_node(uuid._windll_getnode(), 'windll') def test_getnode(self): - self.check_node(uuid.getnode()) + self.check_node(uuid.getnode(), "getnode1") # Test it again to ensure consistency. - self.check_node(uuid.getnode()) + self.check_node(uuid.getnode(), "getnode2") def test_uuid1(self): equal = self.assertEqual |