Repository navigation
Conversation
Preserve RepositoryIni missing-key behavior when a valid file has no settings section.
Test valid empty and unrelated-section files, missing-key arguments, fallback lookup and preserved interpolation errors.
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.
Problem
RepositoryIni.__getitem__translates a missing option intoKeyError, as introduced in #153 for cascading repositories. But a valid empty INI file, or one containing only another section, instead raisesNoSectionError. The repository reports that the key is absent, yet a fallback loop catchingKeyErrorcannot continue to the next repository.Change
Translate
NoSectionErroralongsideNoOptionError, preserving the requested key inKeyError.args. Parsing and interpolation errors remain unchanged. This does not change environment-variable precedence or the scope of #180.Added five test cases: empty and unrelated-section files for direct lookup and repository fallback, plus a control that interpolation errors are not hidden. Four cases fail on the unchanged base. No existing tests or CI settings are changed.
Validation
git diff --checkpass.Python 2.7, 3.6-3.8, PyPy and other operating systems were not available for execution. The production imports and tests retain the project's older-Python-compatible syntax.