mirror of
https://github.com/python/cpython.git
synced 2025-11-01 22:21:35 +00:00
gh-114099: Add test exclusions to support running the test suite on iOS (#114889)
Add test annotations required to run the test suite on iOS (PEP 730). The majority of the change involve annotating tests that use subprocess, but are skipped on Emscripten/WASI for other reasons, and including iOS/tvOS/watchOS under the same umbrella as macOS/darwin checks. `is_apple` and `is_apple_mobile` test helpers have been added to identify *any* Apple platform, and "any Apple platform except macOS", respectively.
This commit is contained in:
parent
15f6f048a6
commit
391659b3da
31 changed files with 224 additions and 150 deletions
|
|
@ -30,8 +30,9 @@
|
|||
|
||||
import unittest
|
||||
from test import support
|
||||
from test.support import os_helper
|
||||
from test.support import threading_helper
|
||||
from test.support import (
|
||||
is_apple, os_helper, requires_subprocess, threading_helper
|
||||
)
|
||||
|
||||
support.requires_working_socket(module=True)
|
||||
|
||||
|
|
@ -410,8 +411,8 @@ def close_conn():
|
|||
reader.close()
|
||||
return body
|
||||
|
||||
@unittest.skipIf(sys.platform == 'darwin',
|
||||
'undecodable name cannot always be decoded on macOS')
|
||||
@unittest.skipIf(is_apple,
|
||||
'undecodable name cannot always be decoded on Apple platforms')
|
||||
@unittest.skipIf(sys.platform == 'win32',
|
||||
'undecodable name cannot be decoded on win32')
|
||||
@unittest.skipUnless(os_helper.TESTFN_UNDECODABLE,
|
||||
|
|
@ -422,11 +423,11 @@ def test_undecodable_filename(self):
|
|||
with open(os.path.join(self.tempdir, filename), 'wb') as f:
|
||||
f.write(os_helper.TESTFN_UNDECODABLE)
|
||||
response = self.request(self.base_url + '/')
|
||||
if sys.platform == 'darwin':
|
||||
# On Mac OS the HFS+ filesystem replaces bytes that aren't valid
|
||||
# UTF-8 into a percent-encoded value.
|
||||
if is_apple:
|
||||
# On Apple platforms the HFS+ filesystem replaces bytes that
|
||||
# aren't valid UTF-8 into a percent-encoded value.
|
||||
for name in os.listdir(self.tempdir):
|
||||
if name != 'test': # Ignore a filename created in setUp().
|
||||
if name != 'test': # Ignore a filename created in setUp().
|
||||
filename = name
|
||||
break
|
||||
body = self.check_status_and_reason(response, HTTPStatus.OK)
|
||||
|
|
@ -697,6 +698,7 @@ def test_html_escape_filename(self):
|
|||
|
||||
@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0,
|
||||
"This test can't be run reliably as root (issue #13308).")
|
||||
@requires_subprocess()
|
||||
class CGIHTTPServerTestCase(BaseTestCase):
|
||||
class request_handler(NoLogRequestHandler, CGIHTTPRequestHandler):
|
||||
_test_case_self = None # populated by each setUp() method call.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue