##// END OF EJS Templates
%env: hide likely secrets by default...
Min RK -
Show More
@@ -446,7 +446,13 b' class OSMagics(Magics):'
446 446 raise UsageError(err)
447 447 if len(bits) > 1:
448 448 return self.set_env(parameter_s)
449 return dict(os.environ)
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 457 @line_magic
452 458 def set_env(self, parameter_s):
@@ -11,6 +11,7 b' import sys'
11 11 import warnings
12 12 from textwrap import dedent
13 13 from unittest import TestCase
14 from unittest import mock
14 15 from importlib import invalidate_caches
15 16 from io import StringIO
16 17
@@ -733,6 +734,24 b' class TestEnv(TestCase):'
733 734 env = _ip.magic("env")
734 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 755 def test_env_get_set_simple(self):
737 756 env = _ip.magic("env var val1")
738 757 self.assertEqual(env, None)
General Comments 0
You need to be logged in to leave comments. Login now