summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTodd Leonhardt <todd.leonhardt@gmail.com>2020-11-25 18:52:56 -0500
committerGitHub <noreply@github.com>2020-11-25 18:52:56 -0500
commit03c65c60b39e369958b056c5c844d36d515c8a63 (patch)
tree02cf6743ce8b8d411fd4e2148b8e90d5806c483a /tests
parent9f1c6b1f000593b777c3ee2c62b68edd053f2a3a (diff)
parent20951e94a213eaec3a2f46f8089099256329d0e7 (diff)
downloadcmd2-git-03c65c60b39e369958b056c5c844d36d515c8a63.tar.gz
Merge pull request #1021 from python-cmd2/editors
Updated utils.find_editor() to include more Windows editors
Diffstat (limited to 'tests')
-rw-r--r--tests/test_utils.py61
1 files changed, 12 insertions, 49 deletions
diff --git a/tests/test_utils.py b/tests/test_utils.py
index ab3647e4..5336ccfd 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -641,55 +641,18 @@ def test_str_to_bool_bad_input():
with pytest.raises(ValueError):
cu.str_to_bool(1)
-@mock.patch('cmd2.utils.probe_editors')
-def test_find_editor_specified(mock_probe_editors):
- expected_editor = 'vim'
+def test_find_editor_specified():
+ expected_editor = os.path.join('fake_dir', 'editor')
with mock.patch.dict(os.environ, {'EDITOR': expected_editor}):
editor = cu.find_editor()
assert editor == expected_editor
- mock_probe_editors.assert_not_called()
-
-@pytest.mark.skipif(sys.platform.startswith('win'),
- reason="test 'find_editor' unix codepath")
-def test_find_editor_not_specified_unix():
- expected_editor = 'vim'
- with mock.patch.dict(os.environ, {'EDITOR': ''}):
- with mock.patch(
- 'cmd2.utils.probe_editors',
- return_value=expected_editor
- ) as mock_probe_editors:
- editor = cu.find_editor()
- assert editor == expected_editor
- mock_probe_editors.assert_called_once()
-
-@pytest.mark.skipif(not sys.platform.startswith('win'),
- reason="test 'find_editor' win codepath")
-def test_find_editor_not_specified_win():
- expected_editor = 'notepad'
- with mock.patch.dict(os.environ, {'EDITOR': ''}):
- with mock.patch('cmd2.utils.probe_editors') as mock_probe_editors:
- editor = cu.find_editor()
- assert editor == expected_editor
- mock_probe_editors.assert_not_called()
-
-@pytest.mark.skipif(sys.platform.startswith('win'),
- reason="test 'probe_editors' codepath")
-def test_probe_editors(tmpdir):
- path = tmpdir.mkdir('bin')
- vi_path = str(path.join('vi'))
- with mock.patch.dict(os.environ, {'PATH': str(path)}):
- editor = cu.probe_editors()
- assert not editor
-
- def mock_is_executable(p):
- print(p, vi_path)
- if p == vi_path:
- return True
-
- with mock.patch.dict(os.environ, {'PATH': str(path)}):
- with mock.patch(
- 'cmd2.utils.is_executable',
- mock_is_executable
- ):
- editor = cu.probe_editors()
- assert editor == vi_path
+
+def test_find_editor_not_specified():
+ # Use existing path env setting. Something in the editor list should be found.
+ editor = cu.find_editor()
+ assert editor
+
+ # Overwrite path env setting with invalid path, clear all other env vars so no editor should be found.
+ with mock.patch.dict(os.environ, {'PATH': 'fake_dir'}, clear=True):
+ editor = cu.find_editor()
+ assert editor is None