forked from pool/python311
- gh-131809: Update bundled libexpat to 2.7.1
- gh-131261: Upgrade to libexpat 2.7.0
- gh-105704: When using urllib.parse.urlsplit() and
urllib.parse.urlparse() host parsing would not reject domain
names containing square brackets ([ and ]). Square brackets
are only valid for IPv6 and IPvFuture hosts according to RFC
3986 Section 3.2.2 (bsc#1236705, CVE-2025-0938,
gh#python/cpython#105704).
- gh-121284: Fix bug in the folding of rfc2047 encoded-words
when flattening an email message using a modern email
policy. Previously when an encoded-word was too long for
a line, it would be decoded, split across lines, and
re-encoded. But commas and other special characters in the
original text could be left unencoded and unquoted. This
could theoretically be used to spoof header lines using a
carefully constructed encoded-word if the resulting rendered
email was transmitted or re-parsed.
- gh-80222: Fix bug in the folding of quoted strings
when flattening an email message using a modern email
policy. Previously when a quoted string was folded so that
it spanned more than one line, the surrounding quotes and
internal escapes would be omitted. This could theoretically
be used to spoof header lines using a carefully constructed
quoted string if the resulting rendered email was transmitted
or re-parsed.
- gh-119511: Fix a potential denial of service in the imaplib
module. When connecting to a malicious server, it could
cause an arbitrary amount of memory to be allocated. On many
systems this is harmless as unused virtual memory is only
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python311?expand=0&rev=167
70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
#!/usr/bin/python3
|
|
"""
|
|
Simple regexp-based skipped test checker.
|
|
It lists tests that are mentioned (presumably for exclusion)
|
|
in BASE, and in MAIN (presumably for inclusion)
|
|
and reports discrepancies.
|
|
|
|
This will have a number of
|
|
"""
|
|
|
|
MAIN = "python39.spec"
|
|
|
|
import glob
|
|
import re
|
|
from os.path import basename
|
|
|
|
alltests = set()
|
|
qemu_exclusions = set()
|
|
|
|
for item in glob.glob("Python-*/Lib/test/test_*"):
|
|
testname = basename(item)
|
|
if testname.endswith(".py"):
|
|
testname = testname[:-3]
|
|
alltests.add(testname)
|
|
|
|
testre = re.compile(r'[\s"](test_\w+)\b')
|
|
|
|
def find_tests_in_spec(specname):
|
|
global qemu_exclusions
|
|
|
|
found_tests = set()
|
|
with open(specname) as spec:
|
|
in_qemu = False
|
|
for line in spec:
|
|
line = line.strip()
|
|
if "#" in line:
|
|
line = line[:line.index("#")]
|
|
tests = set(testre.findall(line))
|
|
found_tests |= tests
|
|
if line == "%if 0%{?qemu_user_space_build} > 0":
|
|
in_qemu = True
|
|
if in_qemu:
|
|
if line == "%endif":
|
|
in_qemu = False
|
|
qemu_exclusions |= tests
|
|
return found_tests
|
|
|
|
excluded = find_tests_in_spec(MAIN)
|
|
|
|
#print("--- excluded tests:", " ".join(sorted(excluded)))
|
|
#print("--- included tests:", " ".join(sorted(included)))
|
|
|
|
mentioned = excluded
|
|
nonexistent = mentioned - alltests
|
|
missing = excluded - qemu_exclusions
|
|
|
|
print("--- the following tests are excluded for QEMU and not tested in python")
|
|
print("--- (that probably means we don't need to worry about them)")
|
|
for test in sorted(qemu_exclusions - excluded):
|
|
print(test)
|
|
|
|
print("--- the following tests might be excluded in python:")
|
|
for test in sorted(missing):
|
|
print(test)
|
|
|
|
if nonexistent:
|
|
print("--- the following tests don't exist:")
|
|
for test in sorted(nonexistent):
|
|
print(test)
|