Skip to content

Commit 8dab973

Browse files
committed
Add tests for get_editor_url
1 parent bda95cf commit 8dab973

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

debug_toolbar/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,11 +409,11 @@ def get_editor_url(file: str, line: int = 1) -> str | None:
409409
"emacs": "emacs://open?url=file://{file}&line={line}",
410410
"espresso": "x-espresso://open?filepath={file}&lines={line}",
411411
"idea": "idea://open?file={file}&line={line}",
412-
"idea-remote": "javascript:(()=>{let r=new XMLHttpRequest; r.open('get','http://localhost:63342/api/file/?file={file}&line={line}');r.send();})()",
412+
"idea-remote": "javascript:(()=>{{let r=new XMLHttpRequest; r.open('get','http://localhost:63342/api/file/?file={file}&line={line}');r.send();}})()",
413413
"macvim": "mvim://open/?url=file://{file}&line={line}",
414414
"nova": "nova://open?path={file}&line={line}",
415415
"pycharm": "pycharm://open?file={file}&line={line}",
416-
"pycharm-remote": "javascript:(()=>{let r=new XMLHttpRequest; r.open('get','http://localhost:63342/api/file/{file}:{line}');r.send();})()",
416+
"pycharm-remote": "javascript:(()=>{{let r=new XMLHttpRequest; r.open('get','http://localhost:63342/api/file/{file}:{line}');r.send();}})()",
417417
"sublime": "subl://open?url=file://{file}&line={line}",
418418
"vscode": "vscode://file/{file}:{line}",
419419
"vscode-insiders": "vscode-insiders://file/{file}:{line}",

tests/test_utils.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import debug_toolbar.utils
77
from debug_toolbar.utils import (
8+
get_editor_url,
89
get_name_from_obj,
910
get_stack,
1011
get_stack_trace,
@@ -171,3 +172,33 @@ def test_non_dict_input(self):
171172
test_input = ["not", "a", "dict"]
172173
result = sanitize_and_sort_request_vars(test_input)
173174
self.assertEqual(result["raw"], test_input)
175+
176+
177+
class GetEditorUrlTestCase(unittest.TestCase):
178+
@override_settings(DEBUG_TOOLBAR_CONFIG={"EDITOR": "vscode"})
179+
def test_get_editor_url(self):
180+
editors = {
181+
"cursor": "cursor://file/test.py:5",
182+
"emacs": "emacs://open?url=file://test.py&line=5",
183+
"espresso": "x-espresso://open?filepath=test.py&lines=5",
184+
"idea": "idea://open?file=test.py&line=5",
185+
"idea-remote": "javascript:(()=>{let r=new XMLHttpRequest; r.open('get','http://localhost:63342/api/file/?file=test.py&line=5');r.send();})()",
186+
"macvim": "mvim://open/?url=file://test.py&line=5",
187+
"nova": "nova://open?path=test.py&line=5",
188+
"pycharm": "pycharm://open?file=test.py&line=5",
189+
"pycharm-remote": "javascript:(()=>{let r=new XMLHttpRequest; r.open('get','http://localhost:63342/api/file/test.py:5');r.send();})()",
190+
"sublime": "subl://open?url=file://test.py&line=5",
191+
"vscode": "vscode://file/test.py:5",
192+
"vscode-insiders": "vscode-insiders://file/test.py:5",
193+
"vscode-remote": "vscode://vscode-remote/test.py:5",
194+
"vscode-insiders-remote": "vscode-insiders://vscode-remote/test.py:5",
195+
"vscodium": "vscodium://file/test.py:5",
196+
"windsurf": "windsurf://file/test.py:5",
197+
}
198+
for editor, expected_url in editors.items():
199+
with (
200+
self.subTest(editor=editor),
201+
override_settings(DEBUG_TOOLBAR_CONFIG={"EDITOR": editor}),
202+
):
203+
url = get_editor_url("test.py", 5)
204+
self.assertEqual(url, expected_url)

0 commit comments

Comments
 (0)