Show More
@@ -446,7 +446,13 b' class OSMagics(Magics):' | |||||
446 | raise UsageError(err) |
|
446 | raise UsageError(err) | |
447 | if len(bits) > 1: |
|
447 | if len(bits) > 1: | |
448 | return self.set_env(parameter_s) |
|
448 | return self.set_env(parameter_s) | |
449 |
|
|
449 | env = dict(os.environ) | |
|
450 | # hide likely secrets when printing the whole environment | |||
|
451 | for key in list(env): | |||
|
452 | if any(s in key.lower() for s in ('key', 'token', 'secret')): | |||
|
453 | env[key] = '<hidden>' | |||
|
454 | ||||
|
455 | return env | |||
450 |
|
456 | |||
451 | @line_magic |
|
457 | @line_magic | |
452 | def set_env(self, parameter_s): |
|
458 | def set_env(self, parameter_s): |
@@ -11,6 +11,7 b' import sys' | |||||
11 | import warnings |
|
11 | import warnings | |
12 | from textwrap import dedent |
|
12 | from textwrap import dedent | |
13 | from unittest import TestCase |
|
13 | from unittest import TestCase | |
|
14 | from unittest import mock | |||
14 | from importlib import invalidate_caches |
|
15 | from importlib import invalidate_caches | |
15 | from io import StringIO |
|
16 | from io import StringIO | |
16 |
|
17 | |||
@@ -733,6 +734,24 b' class TestEnv(TestCase):' | |||||
733 | env = _ip.magic("env") |
|
734 | env = _ip.magic("env") | |
734 | self.assertTrue(isinstance(env, dict)) |
|
735 | self.assertTrue(isinstance(env, dict)) | |
735 |
|
736 | |||
|
737 | def test_env_secret(self): | |||
|
738 | env = _ip.magic("env") | |||
|
739 | hidden = "<hidden>" | |||
|
740 | with mock.patch.dict( | |||
|
741 | os.environ, | |||
|
742 | { | |||
|
743 | "API_KEY": "abc123", | |||
|
744 | "SECRET_THING": "ssshhh", | |||
|
745 | "JUPYTER_TOKEN": "", | |||
|
746 | "VAR": "abc" | |||
|
747 | } | |||
|
748 | ): | |||
|
749 | env = _ip.magic("env") | |||
|
750 | assert env["API_KEY"] == hidden | |||
|
751 | assert env["SECRET_THING"] == hidden | |||
|
752 | assert env["JUPYTER_TOKEN"] == hidden | |||
|
753 | assert env["VAR"] == "abc" | |||
|
754 | ||||
736 | def test_env_get_set_simple(self): |
|
755 | def test_env_get_set_simple(self): | |
737 | env = _ip.magic("env var val1") |
|
756 | env = _ip.magic("env var val1") | |
738 | self.assertEqual(env, None) |
|
757 | self.assertEqual(env, None) |
General Comments 0
You need to be logged in to leave comments.
Login now