Issue 29931: ipaddress.ip_interface lt check seems to be broken (original) (raw)
This issue has been migrated to GitHub: https://github.com/python/cpython/issues/74117
classification
Title: | ipaddress.ip_interface __lt__ check seems to be broken | ||
---|---|---|---|
Type: | behavior | Stage: | resolved |
Components: | Library (Lib) | Versions: | Python 3.7, Python 3.6, Python 3.5 |
process
Status: | closed | Resolution: | fixed |
---|---|---|---|
Dependencies: | Superseder: | ||
Assigned To: | Nosy List: | Mariatta, Sanjay, berker.peksag, ncoghlan, pmoody, serhiy.storchaka, xiang.zhang | |
Priority: | normal | Keywords: |
Created on 2017-03-28 10:37 by Sanjay, last changed 2022-04-11 14:58 by admin. This issue is now closed.
Pull Requests | |||
---|---|---|---|
URL | Status | Linked | Edit |
PR 879 | merged | python-dev,2017-03-28 18:31 | |
PR 2217 | merged | serhiy.storchaka,2017-06-15 13:52 | |
PR 2218 | merged | serhiy.storchaka,2017-06-15 13:54 |
Messages (7) | ||
---|---|---|
msg290695 - (view) | Author: Sanjay (Sanjay) * | Date: 2017-03-28 10:37 |
The less than check for ip_interface behavior seems weird. I am not sure if this is by design. We are just comparing the network address but when network address is equal we should compare the ip address. The expectation is if a < b is False then b <= a must be True >>> import ipaddress >>> a = ipaddress.ip_interface("1.1.1.1/24") >>> b = ipaddress.ip_interface("1.1.1.2/24") >>> a < b False >>> b <= a False >>> a == b False >>> This happens with both v4 and v6 The tests were passing because in ComparisonTests we were testing with prefix length of 32 which means the whole ip address became the network address. I have made a fix here: https://github.com/s-sanjay/cpython/commit/14975f58539308b7af5a1519705fb8cd95ad7951 I can add more tests and send PR but before that I wanted to confirm the behavior. | ||
msg290700 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * ![]() |
Date: 2017-03-28 12:31 |
Indeed, this looks as a bug. >>> a < b False >>> b > a True | ||
msg290964 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * ![]() |
Date: 2017-04-01 06:09 |
New changeset 7bd8d3e794782582a4ad1c9749424fff86802c3e by Serhiy Storchaka (s-sanjay) in branch 'master': bpo-29931 fix __lt__ check in ipaddress.ip_interface for both v4 and v6. (#879) https://github.com/python/cpython/commit/7bd8d3e794782582a4ad1c9749424fff86802c3e | ||
msg291112 - (view) | Author: Mariatta (Mariatta) * ![]() |
Date: 2017-04-04 08:11 |
Serhiy, just checking whether this needs backport? The PR has the backport to 3.5 and 3.6 labels, but it's not indicated in this ticket. If it doesn't need backport, then perhaps we can close this issue. Thanks. | ||
msg291684 - (view) | Author: Berker Peksag (berker.peksag) * ![]() |
Date: 2017-04-15 00:16 |
I think we should backport this to at least 3.6. | ||
msg296098 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * ![]() |
Date: 2017-06-15 14:16 |
New changeset cf58dfb44cc11d41ea1473cd7436618b210b8258 by Serhiy Storchaka in branch '3.6': [3.6] bpo-29931 fix __lt__ check in ipaddress.ip_interface for both v4 and v6. (GH-879) (#2217) https://github.com/python/cpython/commit/cf58dfb44cc11d41ea1473cd7436618b210b8258 | ||
msg296099 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * ![]() |
Date: 2017-06-15 14:16 |
New changeset c5a6fb654a280c7b17f1d348e2e40d62ca04c5d3 by Serhiy Storchaka in branch '3.5': [3.5] bpo-29931 fix __lt__ check in ipaddress.ip_interface for both v4 and v6. (GH-879) (#2218) https://github.com/python/cpython/commit/c5a6fb654a280c7b17f1d348e2e40d62ca04c5d3 |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:58:44 | admin | set | github: 74117 |
2017-06-15 14:17:26 | serhiy.storchaka | set | status: open -> closedresolution: fixedstage: backport needed -> resolved |
2017-06-15 14:16:58 | serhiy.storchaka | set | messages: + |
2017-06-15 14:16:41 | serhiy.storchaka | set | messages: + |
2017-06-15 13:54:39 | serhiy.storchaka | set | pull_requests: + <pull%5Frequest2262> |
2017-06-15 13:52:53 | serhiy.storchaka | set | pull_requests: + <pull%5Frequest2261> |
2017-04-15 00:17:00 | berker.peksag | set | nosy: + berker.peksagmessages: + |
2017-04-04 08:54:03 | Mariatta | set | versions: + Python 3.5, Python 3.6 |
2017-04-04 08:32:51 | serhiy.storchaka | set | stage: needs patch -> backport needed |
2017-04-04 08:11:11 | Mariatta | set | nosy: + Mariattamessages: + |
2017-04-01 06:09:55 | serhiy.storchaka | set | messages: + |
2017-03-28 18:31:20 | python-dev | set | pull_requests: + <pull%5Frequest778> |
2017-03-28 12:31:47 | serhiy.storchaka | set | nosy: + serhiy.storchakamessages: + stage: needs patch |
2017-03-28 10:37:20 | Sanjay | create |