[JUJU-2271] PatchEnvironment now correctly unsets env vars#169
Merged
jack-w-shaw merged 2 commits intojuju:masterfrom Nov 28, 2022
Merged
Conversation
9050411 to
5278ee0
Compare
manadart
requested changes
Nov 28, 2022
Member
manadart
left a comment
There was a problem hiding this comment.
Might as well do a go mod tidy to pick up all the latest versions of the dependencies.
5278ee0 to
1e9c1e3
Compare
os.GetEnv doesn't distinguish between unset vars and vars set to the empty string. However, LookupEnv does. This means PatchEnvironment would leave behind env vars set to the empty string when they were previously unset These env var would then be picked up by LookupEnv, which can cause unexpected errors.
1e9c1e3 to
80ad743
Compare
manadart
approved these changes
Nov 28, 2022
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.
os.GetEnv doesn't distinguish between unset vars and vars set to the empty string. However, LookupEnv does. This means PatchEnvironment would leave behind env vars set to the empty string when they were previously unset
These env var would then be picked up by LookupEnv, which can cause unexpected errors.
Update dependencies as a drive-by
QA Steps
Verify unit tests pass
Verify juju unit testing suite passes as usual using this in place of juju/testing
Also, write a test for some code which uses os.LookupEnv, branching based it's second return var, and performs some validation on the env var value. Perhaps you are wish to parse a boolean config option from your environment.
Verify these tests fail when you PatchEnvironment with upstream. Then verify the pass with this iteration