@@ -64,7 +64,7 @@ def test_command_as_list(fp: FakeProcess, runner: LocalTutorialRunner) -> None:
6464 recorder_test = fp .register (["ls" , "test with spaces" ])
6565 recorder_cleanup = fp .register (["ls" , "cleanup with spaces" ])
6666 runner .run ()
67- expected = {"shell" : False , "stdin" : None , "stderr" : None , "stdout" : None }
67+ expected = {"shell" : False , "stdin" : None , "stderr" : None , "stdout" : None , "env" : None }
6868 assert recorder_main .calls [0 ].kwargs == expected
6969 assert recorder_test .calls [0 ].kwargs == expected
7070 assert recorder_cleanup .calls [0 ].kwargs == expected
@@ -103,7 +103,13 @@ def test_command_hide_output(fp: FakeProcess, runner: LocalTutorialRunner) -> No
103103 recorder_test = fp .register ("ls test" )
104104 recorder_cleanup = fp .register ("ls cleanup" )
105105 runner .run ()
106- expected = {"shell" : True , "stdin" : None , "stderr" : subprocess .DEVNULL , "stdout" : subprocess .DEVNULL }
106+ expected = {
107+ "shell" : True ,
108+ "stdin" : None ,
109+ "stderr" : subprocess .DEVNULL ,
110+ "stdout" : subprocess .DEVNULL ,
111+ "env" : None ,
112+ }
107113 assert recorder_main .calls [0 ].kwargs == expected
108114 assert recorder_test .calls [0 ].kwargs == expected
109115 assert recorder_cleanup .calls [0 ].kwargs == expected
@@ -116,7 +122,13 @@ def test_command_capture_output(
116122 """Test running a commands with capturing the output."""
117123 recorder = fp .register ("echo foo bar bla" , stdout = "foo bar bla" , stderr = "foo bla bla" )
118124 runner .run ()
119- expected = {"shell" : True , "stdin" : None , "stderr" : subprocess .PIPE , "stdout" : subprocess .PIPE }
125+ expected = {
126+ "shell" : True ,
127+ "stdin" : None ,
128+ "stderr" : subprocess .PIPE ,
129+ "stdout" : subprocess .PIPE ,
130+ "env" : None ,
131+ }
120132 assert recorder .calls [0 ].kwargs == expected
121133 output = capsys .readouterr ()
122134 assert output .out == "--- stdout ---\n foo bar bla\n --- stderr ---\n foo bla bla\n "
@@ -156,6 +168,22 @@ def test_command_with_invalid_output(fp: FakeProcess, runner: LocalTutorialRunne
156168 runner .run ()
157169
158170
171+ @pytest .mark .tutorial ("command-simple-env" )
172+ def test_environment (fp : FakeProcess , runner : LocalTutorialRunner ) -> None :
173+ """Test running a commands with environment variables."""
174+ recorder1 = fp .register ("echo 1 $VARIABLE" )
175+ recorder2 = fp .register ("echo 2 $VARIABLE" )
176+ runner .run ()
177+ assert recorder1 .calls [0 ].kwargs ["env" ]["VARIABLE" ] == "VALUE 1"
178+ assert recorder2 .calls [0 ].kwargs == {
179+ "shell" : True ,
180+ "stdin" : None ,
181+ "stderr" : None ,
182+ "stdout" : None ,
183+ "env" : {"VARIABLE" : "VALUE 2" },
184+ }
185+
186+
159187@pytest .mark .doc_tutorial ("test-command" )
160188def test_test_commands_with_command_error (fp : FakeProcess , doc_runner : LocalTutorialRunner ) -> None :
161189 """Test the cleanup from docs."""
0 commit comments