66import io
77import os
88import subprocess
9- from pathlib import Path
9+ from typing import Any
1010from unittest import mock
1111
1212import pytest
@@ -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 , "env" : {}}
67+ expected : dict [ str , Any ] = {"shell" : False , "stdin" : None , "stderr" : None , "stdout" : None , "env" : {}}
6868 assert recorder_main .calls [0 ].kwargs == expected
6969 assert recorder_test .calls [0 ].kwargs == expected
7070 assert recorder_cleanup .calls [0 ].kwargs == expected
@@ -85,7 +85,16 @@ def test_command_with_chdir(fp: FakeProcess, runner: LocalTutorialRunner) -> Non
8585 fp .register ("ls" )
8686 with mock .patch ("os.chdir" , autospec = True ) as mock_chdir :
8787 runner .run ()
88- mock_chdir .assert_called_once_with (Path ("/does/not/exist" ))
88+ mock_chdir .assert_called_once_with ("/does/not/exist" )
89+
90+
91+ @pytest .mark .tutorial ("command-with-chdir-template" )
92+ def test_command_with_chdir_with_template (fp : FakeProcess , runner : LocalTutorialRunner ) -> None :
93+ """Test changing the working directory after a command."""
94+ fp .register ("ls" )
95+ with mock .patch ("os.chdir" , autospec = True ) as mock_chdir :
96+ runner .run ()
97+ mock_chdir .assert_called_once_with ("/does/not/exist" )
8998
9099
91100@pytest .mark .tutorial ("command-stdin" )
@@ -112,7 +121,7 @@ def test_command_hide_output(fp: FakeProcess, runner: LocalTutorialRunner) -> No
112121 recorder_test = fp .register ("ls test" )
113122 recorder_cleanup = fp .register ("ls cleanup" )
114123 runner .run ()
115- expected = {
124+ expected : dict [ str , Any ] = {
116125 "shell" : True ,
117126 "stdin" : None ,
118127 "stderr" : subprocess .DEVNULL ,
@@ -131,7 +140,7 @@ def test_command_capture_output(
131140 """Test running a commands with capturing the output."""
132141 recorder = fp .register ("echo foo bar bla" , stdout = "foo bar bla" , stderr = "foo bla bla" )
133142 runner .run ()
134- expected = {
143+ expected : dict [ str , Any ] = {
135144 "shell" : True ,
136145 "stdin" : None ,
137146 "stderr" : subprocess .PIPE ,
0 commit comments