Normalize bare drive letters in portable copy directory (#20159)#20446
Open
Mubashir78 wants to merge 1 commit into
Open
Normalize bare drive letters in portable copy directory (#20159)#20446Mubashir78 wants to merge 1 commit into
Mubashir78 wants to merge 1 commit into
Conversation
When entering a bare drive letter (e.g. 'c:') as the destination directory in the Create Portable NVDA dialog, os.path.isabs returns False because 'c:' lacks a trailing separator. Normalize by appending os.sep so the path is recognised as absolute and the portable copy proceeds without error. Adds unit tests for the normalization logic, mocking drive-letter semantics to remain platform-independent.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #20159
Description of the change
When entering a bare drive letter (e.g.
c:) as the destination directory in the Create Portable NVDA dialog,os.path.isabsreturnsFalsebecause a drive letter without a trailing separator is not considered an absolute path on Windows.This change normalizes bare drive letters by appending
os.sepbefore theos.path.isabscheck, so that enteringc:behaves the same asc:\.Testing
Added 4 unit tests in
Test_CreatePortableDirectoryNormalization:test_bareDriveLetter_isAccepted—c:is now acceptedtest_relativePath_showsError—foostill shows the errortest_driveLetterWithBackslash_isAccepted—c:\still accepted (regression)test_driveLetterWithPath_isAccepted—d:\\NVDAstill accepted (regression)