mirror of
https://github.com/python/cpython.git
synced 2026-01-06 23:42:34 +00:00
[3.14] gh-136438: Make sure test_remote_pdb pass with all optimization levels (GH-136788) (GH-136855)
(cherry picked from commit 588d9fb84a)
This commit is contained in:
parent
2cb3b534e7
commit
0e909267f6
1 changed files with 35 additions and 27 deletions
|
|
@ -1,5 +1,4 @@
|
|||
import io
|
||||
import time
|
||||
import itertools
|
||||
import json
|
||||
import os
|
||||
|
|
@ -8,16 +7,13 @@
|
|||
import socket
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import textwrap
|
||||
import threading
|
||||
import unittest
|
||||
import unittest.mock
|
||||
from contextlib import closing, contextmanager, redirect_stdout, redirect_stderr, ExitStack
|
||||
from pathlib import Path
|
||||
from test.support import is_wasi, cpython_only, force_color, requires_subprocess, SHORT_TIMEOUT
|
||||
from test.support.os_helper import temp_dir, TESTFN, unlink
|
||||
from typing import Dict, List, Optional, Tuple, Union, Any
|
||||
from test.support import is_wasi, cpython_only, force_color, requires_subprocess, SHORT_TIMEOUT, subTests
|
||||
from test.support.os_helper import TESTFN, unlink
|
||||
from typing import List
|
||||
|
||||
import pdb
|
||||
from pdb import _PdbServer, _PdbClient
|
||||
|
|
@ -283,37 +279,50 @@ def test_handling_other_message(self):
|
|||
expected_stdout="Some message.\n",
|
||||
)
|
||||
|
||||
def test_handling_help_for_command(self):
|
||||
"""Test handling a request to display help for a command."""
|
||||
@unittest.skipIf(sys.flags.optimize >= 2, "Help not available for -OO")
|
||||
@subTests(
|
||||
"help_request,expected_substring",
|
||||
[
|
||||
# a request to display help for a command
|
||||
({"help": "ll"}, "Usage: ll | longlist"),
|
||||
# a request to display a help overview
|
||||
({"help": ""}, "type help <topic>"),
|
||||
# a request to display the full PDB manual
|
||||
({"help": "pdb"}, ">>> import pdb"),
|
||||
],
|
||||
)
|
||||
def test_handling_help_when_available(self, help_request, expected_substring):
|
||||
"""Test handling help requests when help is available."""
|
||||
incoming = [
|
||||
("server", {"help": "ll"}),
|
||||
("server", help_request),
|
||||
]
|
||||
self.do_test(
|
||||
incoming=incoming,
|
||||
expected_outgoing=[],
|
||||
expected_stdout_substring="Usage: ll | longlist",
|
||||
expected_stdout_substring=expected_substring,
|
||||
)
|
||||
|
||||
def test_handling_help_without_a_specific_topic(self):
|
||||
"""Test handling a request to display a help overview."""
|
||||
@unittest.skipIf(sys.flags.optimize < 2, "Needs -OO")
|
||||
@subTests(
|
||||
"help_request,expected_substring",
|
||||
[
|
||||
# a request to display help for a command
|
||||
({"help": "ll"}, "No help for 'll'"),
|
||||
# a request to display a help overview
|
||||
({"help": ""}, "Undocumented commands"),
|
||||
# a request to display the full PDB manual
|
||||
({"help": "pdb"}, "No help for 'pdb'"),
|
||||
],
|
||||
)
|
||||
def test_handling_help_when_not_available(self, help_request, expected_substring):
|
||||
"""Test handling help requests when help is not available."""
|
||||
incoming = [
|
||||
("server", {"help": ""}),
|
||||
("server", help_request),
|
||||
]
|
||||
self.do_test(
|
||||
incoming=incoming,
|
||||
expected_outgoing=[],
|
||||
expected_stdout_substring="type help <topic>",
|
||||
)
|
||||
|
||||
def test_handling_help_pdb(self):
|
||||
"""Test handling a request to display the full PDB manual."""
|
||||
incoming = [
|
||||
("server", {"help": "pdb"}),
|
||||
]
|
||||
self.do_test(
|
||||
incoming=incoming,
|
||||
expected_outgoing=[],
|
||||
expected_stdout_substring=">>> import pdb",
|
||||
expected_stdout_substring=expected_substring,
|
||||
)
|
||||
|
||||
def test_handling_pdb_prompts(self):
|
||||
|
|
@ -1434,7 +1443,6 @@ def test_multi_line_commands(self):
|
|||
|
||||
|
||||
def _supports_remote_attaching():
|
||||
from contextlib import suppress
|
||||
PROCESS_VM_READV_SUPPORTED = False
|
||||
|
||||
try:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue