summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_uuid.py
Commit message (Collapse)AuthorAgeFilesLines
* bpo-38659: [Enum] add _simple_enum decorator (GH-25497)Ethan Furman2021-04-211-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add: * `_simple_enum` decorator to transform a normal class into an enum * `_test_simple_enum` function to compare * `_old_convert_` to enable checking `_convert_` generated enums `_simple_enum` takes a normal class and converts it into an enum: @simple_enum(Enum) class Color: RED = 1 GREEN = 2 BLUE = 3 `_old_convert_` works much like` _convert_` does, using the original logic: # in a test file import socket, enum CheckedAddressFamily = enum._old_convert_( enum.IntEnum, 'AddressFamily', 'socket', lambda C: C.isupper() and C.startswith('AF_'), source=_socket, ) `_test_simple_enum` takes a traditional enum and a simple enum and compares the two: # in the REPL or the same module as Color class CheckedColor(Enum): RED = 1 GREEN = 2 BLUE = 3 _test_simple_enum(CheckedColor, Color) _test_simple_enum(CheckedAddressFamily, socket.AddressFamily) Any important differences will raise a TypeError
* Revert "bpo-38659: [Enum] add _simple_enum decorator (GH-25285)" (GH-25476)Ethan Furman2021-04-201-8/+0
| | | This reverts commit dbac8f40e81eb0a29dc833e6409a1abf47467da6.
* bpo-38659: [Enum] add _simple_enum decorator (GH-25285)Ethan Furman2021-04-201-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add: _simple_enum decorator to transform a normal class into an enum _test_simple_enum function to compare _old_convert_ to enable checking _convert_ generated enums _simple_enum takes a normal class and converts it into an enum: @simple_enum(Enum) class Color: RED = 1 GREEN = 2 BLUE = 3 _old_convert_ works much like _convert_ does, using the original logic: # in a test file import socket, enum CheckedAddressFamily = enum._old_convert_( enum.IntEnum, 'AddressFamily', 'socket', lambda C: C.isupper() and C.startswith('AF_'), source=_socket, ) test_simple_enum takes a traditional enum and a simple enum and compares the two: # in the REPL or the same module as Color class CheckedColor(Enum): RED = 1 GREEN = 2 BLUE = 3 _test_simple_enum(CheckedColor, Color) _test_simple_enum(CheckedAddressFamily, socket.AddressFamily) Any important differences will raise a TypeError
* bpo-41439: Skip test_ssl and test_uuid tests if fork() is not supported ↵pxinwr2020-12-081-1/+1
| | | | (GH-21684)
* bpo-40275: Use new test.support helper submodules in tests (GH-21314)Hai Shi2020-07-061-2/+3
|
* bpo-40501: Replace ctypes code in uuid with native module (GH-19948)Steve Dower2020-05-121-20/+7
|
* bpo-40443: Remove unused imports in tests (GH-19805)Victor Stinner2020-04-291-2/+0
|
* bpo-40094: Add test.support.wait_process() (GH-19254)Victor Stinner2020-03-311-1/+1
| | | | | | | | | Moreover, the following tests now check the child process exit code: * test_os.PtyTests * test_mailbox.test_lock_conflict() * test_tempfile.test_process_awareness() * test_uuid.testIssue8621() * multiprocessing resource tracker tests
* bpo-39991: Enhance uuid parser for MAC address (GH-19045)Victor Stinner2020-03-171-0/+52
| | | | Reject valid IPv6 addresses which doesn't contain "::" but have a length of 17 characters.
* bpo-39991: uuid._netstat_getnode() ignores IPv6 addresses (GH-19043)Victor Stinner2020-03-171-9/+45
| | | | uuid.getnode() now skips IPv6 addresses with the same string length than a MAC address (17 characters): only use MAC addresses.
* Remove binding of captured exceptions when not used to reduce the chances of ↵Pablo Galindo2019-11-191-1/+1
| | | | | | | creating cycles (GH-17246) Capturing exceptions into names can lead to reference cycles though the __traceback__ attribute of the exceptions in some obscure cases that have been reported previously and fixed individually. As these variables are not used anyway, we can remove the binding to reduce the chances of creating reference cycles. See for example GH-13135
* bpo-28009: Fix uuid.uuid1() and uuid.get_node() on AIX (GH-8672)Michael Felt2019-09-261-21/+50
|
* bpo-28009: Fix uuid SkipUnless logic to be based on platform programs ↵Michael Felt2019-06-151-8/+12
| | | | | | | | | | | | | capable of introspection (GH-12777) uuid could try fallback methods that had no chance of working on a particular platform, and this could cause spurious test failures, as well as degraded performance as fallback options were tried and failed. This fixes both the uuid module and its test's SkipUnless logic to use a prefiltered list of techniques that may at least potentially work on that platform. Patch by Michael Felt (aixtools).
* bpo-35701: Added __weakref__ slot to uuid.UUID (GH-11570)David H2019-01-171-0/+6
| | | Added test for weakreferencing a uuid.UUID object.
* bpo-31784: Use time.time_ns() in uuid.uuid1() (GH-11189)Victor Stinner2018-12-181-0/+18
| | | | | uuid.uuid1() now calls time.time_ns() rather than int(time.time() * 1e9). Replace also int(nanoseconds/100) with nanoseconds // 100. Add an unit test.
* bpo-35202: Remove unused imports in Lib directory (GH-10450)Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి)2018-11-151-1/+0
|
* bpo-30977: rework code changes according to post-merge code review (GH-9106)Tal Einat2018-09-101-51/+129
| | | | also mention the change and its consequences in What's New
* bpo-30977: make uuid.UUID use __slots__ (GH-9078)Tal Einat2018-09-061-0/+60
| | | Co-Authored-By: Wouter Bolsterlee.
* bpo-32502: Discard 64-bit (and other invalid) hardware addresses (#5254)Bo Bayles2018-01-241-0/+26
|
* Fix a regression in uuid added in bpo-32107. (#4677)Serhiy Storchaka2017-12-041-0/+3
| | | | | uuid.get_node() always must return a stable result. Also added a test for non-reproducibility of _random_getnode(). Original patch by Xavier de Gaye.
* bpo-32107 - Improve MAC address calculation and fix test_uuid.py (#4600)Barry Warsaw2017-11-281-14/+12
| | | | | | | | ``uuid.getnode()`` now preferentially returns universally administered MAC addresses if available, over locally administered MAC addresses. This makes a better guarantee for global uniqueness of UUIDs returned from ``uuid.uuid1()``. If only locally administered MAC addresses are available, the first such one found is returned. Also improve internal code style by being explicit about ``return None`` rather than falling off the end of the function. Improve the test robustness.
* Revert "bpo-32107 - Better merge of #4494 (#4576)" (#4593)Victor Stinner2017-11-271-30/+17
| | | This reverts commit 9522a218f7dff95c490ff359cc60e8c2af35f5c8.
* bpo-32107 - Better merge of #4494 (#4576)Barry Warsaw2017-11-271-17/+30
| | | | | | | | | | | | | | | | Improve UUID1 MAC address calculation and related tests. There are two bits in the MAC address that are relevant to UUID1. The first is the locally administered vs. universally administered bit (second least significant of the first octet). Physical network interfaces such as ethernet ports and wireless adapters will always be universally administered, but some interfaces --such as the interface that MacBook Pros communicate with their Touch Bars-- are locally administered. The former are guaranteed to be globally unique, while the latter are demonstrably *not* globally unique and are in fact the same on every MBP with a Touch Bar. With this bit is set, the MAC is locally administered; with it unset it is universally administered. The other bit is the multicast bit (least significant bit of the first octet). When no other MAC address can be found, RFC 4122 mandates that a random 48-bit number be generated. This randomly generated number *must* have the multicast bit set. The improvements in uuid.py include: * Preferentially return a universally administered MAC address, falling back to a locally administered address if none of the former can be found. * Improve several coding style issues, such as adding explicit returns of None, using a more readable bitmask pattern, and assuming that the ultimate fallback, random MAC generation will not fail (and propagating any exception there instead of swallowing them). Improvements in test_uuid.py include: * Always testing the calculated MAC for universal administration, unless explicitly disabled (i.e. for the random case), or implicitly disabled due to running in the Travis environment. Travis test machines have *no* universally administered MAC address at the time of this writing.
* bpo-11063, bpo-20519: avoid ctypes and improve import time for uuid (#3796)Antoine Pitrou2017-09-281-138/+177
| | | | bpo-11063, bpo-20519: avoid ctypes and improve import time for uuid.
* bpo-29925: Skip test_uuid1_safe() on OS X Tiger (#971)Victor Stinner2017-04-191-0/+3
|
* require uuid_generate_time_safe for all tests of it (#390)Benjamin Peterson2017-03-021-7/+8
| | | The way mocking is written in these tests, we need to have the underlying function around.
* correct check for _uuid_generate_time (#388)Benjamin Peterson2017-03-021-1/+1
| | | If ctypes is not available, _uuid_generate_time will be None not its restype attribute.
* bpo-22807: Expose platform UUID generation safety information. (#138)Barry Warsaw2017-02-181-0/+40
| | | | bpo-22807: Expose platform UUID generation safety information.
* Issue #26267: Improve uuid.UUID documentationBerker Peksag2016-12-311-0/+4
| | | | | | | | * Document how comparison of UUID objects work * Document str(uuid) returns the braceless standard form * Add a test for comparison of a UUID object with a non-UUID object Patch by Ammar Askar.
* Issue #12813: uuid.uuid4() no longer depends on ctypesBerker Peksag2016-03-201-1/+0
| | | | uuid.uuid4() always uses os.urandom() after 756d040aa8e8.
* Issue #23015: Improved testing of the uuid module.Serhiy Storchaka2014-12-151-110/+98
|\
| * Issue #23015: Improved testing of the uuid module.Serhiy Storchaka2014-12-151-105/+94
| |
* | Issue #22902: The "ip" command is now used on Linux to determine MAC addressSerhiy Storchaka2014-11-301-0/+6
| | | | | | | | in uuid.getnode(). Pach by Bruno Cauet.
* | Issue #17293: uuid.getnode() now determines MAC address on AIX using netstat.Serhiy Storchaka2014-11-071-1/+19
|\ \ | |/ | | | | Based on patch by Aivars Kalvāns.
| * Issue #17293: uuid.getnode() now determines MAC address on AIX using netstat.Serhiy Storchaka2014-11-071-0/+18
| | | | | | | | Based on patch by Aivars Kalvāns.
* | Issue #22637: avoid using a shell in uuidVictor Stinner2014-10-211-19/+19
|/ | | | Replace os.popen() with subprocess.Popen() in the uuid module.
* Issue #19804: The test_find_mac test in test_uuid is now skipped if theSerhiy Storchaka2014-01-101-0/+6
| | | | ifconfig executable is not available.
* Skip test_find_mac on Windows (issue #19804).Serhiy Storchaka2013-11-271-0/+1
| | | | This test requires the ifconfig executable on $PATH, /sbin/, or /usr/sbin.
* Issue #11508: Fixed uuid.getnode() and uuid.uuid1() on environment withSerhiy Storchaka2013-11-261-0/+21
| | | | virtual interface. Original patch by Kent Frazier.
* Issue #18174: Fix fd leaks in tests.Richard Oudkerk2013-06-101-0/+1
|
* Issue #18094: test_uuid no more reports skipped tests as passed.Serhiy Storchaka2013-05-311-51/+27
|
* Normalize the encoding names for Latin-1 and UTF-8 toMarc-André Lemburg2011-02-251-2/+2
| | | | | | | | | | 'latin-1' and 'utf-8'. These are optimized in the Python Unicode implementation to result in more direct processing, bypassing the codec registry. Also see issue11303.
* Merged revisions 80784 via svnmerge fromRonald Oussoren2010-05-051-0/+28
| | | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r80784 | ronald.oussoren | 2010-05-05 16:48:37 +0200 (Wed, 05 May 2010) | 9 lines The C function used by uuid.uuid4 is broken on OSX 10.6 in that after os.fork() the parent and child generate the same sequence of UUIDs. This patch falls back to the the Python implementation on OSX 10.6 or later. Fixes issue #8621. ........
* Merged revisions 79954 via svnmerge fromStefan Krah2010-04-111-23/+9
| | | | | | | | | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r79954 | stefan.krah | 2010-04-11 17:15:54 +0200 (Sun, 11 Apr 2010) | 17 lines Fix for issues #3581, #1481 and #7650: 1. The assumptions in check_node() were too restrictive: - Hardware addresses with universal_local_bit=1 are valid (locally administered). - Many of the tested functions (including uuid.getnode()) may return valid RFC 4122 random node IDs. These are pretty much random 48-bit values with the multicast bit set to 1. 2. _unixdll_getnode() calls _uuid_generate_time(), which may be None on some platforms. The resulting TypeError is now caught. ........
* #7380: Fix some str/bytearray/bytes issues in uuid docs and implementation.Georg Brandl2009-12-191-0/+6
|
* Followup to r75965: replace the test_uuid-specific patch with a generic fixAntoine Pitrou2009-10-301-3/+0
| | | | (other tests may have the same problem).
* Fix a refleak in test_uuid when run with -j.Antoine Pitrou2009-10-301-0/+3
| | | | | The "refleak" was simply the effect of internal buffering in block buffering mode (rather than line buffering when sys.stdout is a terminal)
* convert old fail* assertions to assert*Benjamin Peterson2009-06-301-4/+4
|
* Issue #1717: Remove cmp. Stage 1: remove all uses of cmp and __cmp__ fromMark Dickinson2009-01-271-1/+6
| | | | the standard library and tests.
* #2621 rename test.test_support to test.supportBenjamin Peterson2008-05-201-2/+2
|