Skip to content

Commit a008c2f

Browse files
committed
fix prompt install tests
1 parent b2c7bf3 commit a008c2f

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed

tests/shellcompletion/__init__.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ def tearDown(self):
9393
self.remove()
9494
super().tearDown()
9595

96-
def verify_install(self, script=None):
96+
def verify_install(self, script=None, directory: t.Optional[Path] = None):
9797
pass
9898

99-
def verify_remove(self, script=None):
99+
def verify_remove(self, script=None, directory: t.Optional[Path] = None):
100100
pass
101101

102102
def install(
@@ -502,9 +502,11 @@ def test_multi_install(self):
502502

503503
if platform.system() != "Windows":
504504

505-
def test_prompt_install(self, env={}):
505+
def test_prompt_install(self, env={}, directory: t.Optional[Path] = None):
506506
import pexpect
507507

508+
env = {**dict(os.environ), **env}
509+
508510
rex = re.compile
509511
expected = [
510512
rex(r"Append the above contents to (?P<file>.*)\?"), # 0
@@ -521,7 +523,7 @@ def test_prompt_install(self, env={}):
521523
"install",
522524
]
523525
self.remove()
524-
self.verify_remove()
526+
self.verify_remove(directory=directory)
525527

526528
install = pexpect.spawn(self.manage_script, install_command, env=env)
527529

@@ -544,7 +546,7 @@ def wait_for_output(child) -> t.Tuple[int, t.Optional[str]]:
544546
self.assertEqual(idx, 2)
545547
break
546548

547-
self.verify_remove()
549+
self.verify_remove(directory=directory)
548550

549551
# test an install
550552
install = pexpect.spawn(self.manage_script, install_command, env=env)
@@ -557,4 +559,4 @@ def wait_for_output(child) -> t.Tuple[int, t.Optional[str]]:
557559
self.assertEqual(idx, 3)
558560
break
559561

560-
self.verify_install()
562+
self.verify_install(directory=directory)

tests/shellcompletion/test_zsh.py

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import shutil
22
from pathlib import Path
3+
import typing as t
34

45
import pytest
56
from django.test import TestCase, override_settings
@@ -25,15 +26,21 @@ class ZshTests(_ScriptCompleteTestCase, TestCase):
2526
f"DJANGO_SETTINGS_MODULE=tests.settings.completion",
2627
]
2728

28-
def verify_install(self, script=None):
29+
def verify_install(self, script=None, directory: t.Optional[Path] = None):
2930
if not script:
3031
script = self.manage_script
31-
self.assertTrue((self.directory / f"_{script}").exists())
32+
self.assertTrue((directory / f"_{script}").exists())
3233

33-
def verify_remove(self, script=None):
34+
def verify_remove(self, script=None, directory: t.Optional[Path] = None):
35+
directory = directory or self.directory
3436
if not script:
3537
script = self.manage_script
36-
self.assertFalse((self.directory / f"_{script}").exists())
38+
try:
39+
self.assertFalse((directory / f"_{script}").exists())
40+
except AssertionError:
41+
import ipdb
42+
43+
ipdb.set_trace()
3744

3845

3946
@pytest.mark.skipif(shutil.which("zsh") is None, reason="Z-Shell not available")
@@ -65,8 +72,14 @@ def test_no_template_config(self):
6572

6673
if platform.system() != "Windows":
6774

68-
def test_prompt_install(self, env={}):
75+
def test_prompt_install(self, env={}, directory=None):
6976
zdot_dir = Path(__file__).parent / "zdotdir"
70-
zdot_dir.mkdir(exist_ok=True)
71-
super().test_prompt_install(env={"ZDOTDIR": str(zdot_dir.absolute())})
72-
shutil.rmtree(zdot_dir)
77+
try:
78+
zdot_dir.mkdir(exist_ok=True)
79+
super().test_prompt_install(
80+
env={"ZDOTDIR": str(zdot_dir.absolute())},
81+
directory=zdot_dir / ".zfunc",
82+
)
83+
finally:
84+
if zdot_dir.exists():
85+
shutil.rmtree(zdot_dir)

0 commit comments

Comments
 (0)