Skip to content

test_pdb fails: Unexpected sys.path[0] behavior with PYTHONSAFEPATH set #123121

Description

@xncbf

Bug report

Bug description:

Issue:
The test_safe_path function in test_pdb.py is failing. When PYTHONSAFEPATH is set to '1', sys.path[0] still includes the current working directory, which is unexpected.

Steps to Reproduce:

  1. Run the Python test suite, specifically focusing on test_pdb.
  2. Observe that test_safe_path fails with the following error:
AssertionError: 'sys.path[0] is /Users/joon/projects/cpython/build/test_python_68610æ/tempcwd' unexpectedly found in '> /Users/joon/projects/cpython/build/test_python_68610æ/tempcwd/main.py(2)<module>()
-> import sys
(Pdb) sys.path[0] is /Users/joon/projects/cpython/build/test_python_68610æ/tempcwd/$PYTHONPATH
The program finished and will be restarted
> /Users/joon/projects/cpython/build/test_python_68610æ/tempcwd/main.py(2)<module>()
-> import sys
(Pdb) 
'

Expected Behavior:
When PYTHONSAFEPATH is set to '1', sys.path[0] should not include the current working directory.

Actual Behavior:
sys.path[0] includes the current working directory, and there's an unexpected $PYTHONPATH appended to the path.

Environment:

  • Python version: 3.14.0
  • OS: macos sonoma 14.1.1 (apple silicon)

#121724

CPython versions tested on:

CPython main branch

Operating systems tested on:

macOS

Activity

added
type-bugAn unexpected behavior, bug, or error
on Aug 18, 2024

Eclips4 commented on Aug 18, 2024

@Eclips4
Member
changed the title [-][BUG] test_pdb fails: Unexpected sys.path[0] behavior with PYTHONSAFEPATH set[/-] [+] test_pdb fails: Unexpected sys.path[0] behavior with PYTHONSAFEPATH set[/+] on Aug 18, 2024
changed the title [-] test_pdb fails: Unexpected sys.path[0] behavior with PYTHONSAFEPATH set[/-] [+]test_pdb fails: Unexpected sys.path[0] behavior with PYTHONSAFEPATH set[/+] on Aug 18, 2024

gaogaotiantian commented on Aug 18, 2024

@gaogaotiantian
Member

How did you run test_safe_path with PYTHONSAFEPATH = 1? It should be skipped (not that it's what I had in mind when I wrote the test).

    @unittest.skipIf(sys.flags.safe_path,
                     'PYTHONSAFEPATH changes default sys.path')
    def _run_pdb(self, pdb_args, commands,
                 expected_returncode=0,
                 extra_env=None):

xncbf commented on Aug 19, 2024

@xncbf
SponsorContributorAuthor
./python.exe -m test test_pdb
./python.exe -m test test_pdb --forever

The above command fails when executed after the build. No other preliminary work is needed.

gaogaotiantian commented on Aug 19, 2024

@gaogaotiantian
Member

Are you able to repro this with

./python.exe -m test test_pdb -m test_safe_path

Can you copy/paste the full output? Is it because of mac that the test actually ran?

added
pendingThe issue will be closed if no feedback is provided
on Oct 24, 2024
removed
pendingThe issue will be closed if no feedback is provided
on Dec 2, 2024

picnixz commented on Dec 2, 2024

@picnixz
Member

Closing as cannot reproduce since the OP did not reply for a while.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    testsTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions