https://github.com/python/cpython/commit/0e909267f65bb0050a17e4651877ecec747e528a
commit: 0e909267f65bb0050a17e4651877ecec747e528a
branch: 3.14
author: Olga Pustovalova <[email protected]>
committer: encukou <[email protected]>
date: 2025-07-20T13:51:59+02:00
summary:
[3.14] gh-136438: Make sure `test_remote_pdb` pass with all optimization levels
(GH-136788) (GH-136855)
(cherry picked from commit 588d9fb84ae014502811ec8580411ea0df7200fe)
files:
M Lib/test/test_remote_pdb.py
diff --git a/Lib/test/test_remote_pdb.py b/Lib/test/test_remote_pdb.py
index aef8a6b0129092..280e2444ef7d34 100644
--- a/Lib/test/test_remote_pdb.py
+++ b/Lib/test/test_remote_pdb.py
@@ -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:
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]