Skip to content

Commit 84e79ab

Browse files
committed
Skip when environment does not support activation test
Signed-off-by: Bernat Gabor <[email protected]>
1 parent 34ea668 commit 84e79ab

File tree

8 files changed

+29
-9
lines changed

8 files changed

+29
-9
lines changed

tests/unit/activation/conftest.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414

1515

1616
class ActivationTester(object):
17-
def __init__(self, session, cmd, activate_script, extension):
17+
def __init__(self, of_class, session, cmd, activate_script, extension):
18+
self.of_class = of_class
1819
self._creator = session.creator
1920
self.cmd = cmd
2021
self._version_cmd = [cmd, "--version"]
@@ -128,8 +129,8 @@ def norm_path(path):
128129

129130

130131
class RaiseOnNonSourceCall(ActivationTester):
131-
def __init__(self, session, cmd, activate_script, extension, non_source_fail_message):
132-
super(RaiseOnNonSourceCall, self).__init__(session, cmd, activate_script, extension)
132+
def __init__(self, of_class, session, cmd, activate_script, extension, non_source_fail_message):
133+
super(RaiseOnNonSourceCall, self).__init__(of_class, session, cmd, activate_script, extension)
133134
self.non_source_fail_message = non_source_fail_message
134135

135136
def __call__(self, monkeypatch, tmp_path):
@@ -172,6 +173,8 @@ def activation_python(tmp_path_factory):
172173
def activation_tester(activation_python, monkeypatch, tmp_path):
173174
def _tester(tester_class):
174175
tester = tester_class(activation_python)
176+
if not tester.of_class.supports(activation_python.creator.interpreter):
177+
pytest.skip("{} not supported on current environment".format(tester.of_class.__name__))
175178
version = tester.get_version(raise_on_fail=IS_INSIDE_CI)
176179
if not isinstance(version, six.string_types):
177180
pytest.skip(msg=six.text_type(version))

tests/unit/activation/test_bash.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
from __future__ import absolute_import, unicode_literals
22

3+
from virtualenv.activation import BashActivator
4+
35

46
def test_bash(raise_on_non_source_class, activation_tester):
57
class Bash(raise_on_non_source_class):
68
def __init__(self, session):
7-
super(Bash, self).__init__(session, "bash", "activate.sh", "sh", "You must source this script: $ source ")
9+
super(Bash, self).__init__(
10+
BashActivator, session, "bash", "activate.sh", "sh", "You must source this script: $ source "
11+
)
812

913
activation_tester(Bash)

tests/unit/activation/test_csh.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from __future__ import absolute_import, unicode_literals
22

3+
from virtualenv.activation import CShellActivator
4+
35

46
def test_csh(activation_tester_class, activation_tester):
57
class Csh(activation_tester_class):
68
def __init__(self, session):
7-
super(Csh, self).__init__(session, "csh", "activate.csh", "csh")
9+
super(Csh, self).__init__(CShellActivator, session, "csh", "activate.csh", "csh")
810

911
activation_tester(Csh)

tests/unit/activation/test_dos.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22

33
import pipes
44

5+
from virtualenv.activation import BatchActivator
6+
57

68
def test_batch(activation_tester_class, activation_tester, tmp_path, activation_python):
79
version_script = tmp_path / "version.bat"
810
version_script.write_text("ver")
911

1012
class Batch(activation_tester_class):
1113
def __init__(self, session):
12-
super(Batch, self).__init__(session, None, "activate.bat", "bat")
14+
super(Batch, self).__init__(BatchActivator, session, None, "activate.bat", "bat")
1315
self._version_cmd = [str(version_script)]
1416
self._invoke_script = []
1517
self.deactivate = "call {}".format(self.quote(str(activation_python.creator.bin_dir / "deactivate.bat")))

tests/unit/activation/test_fish.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from __future__ import absolute_import, unicode_literals
22

3+
from virtualenv.activation import FishActivator
4+
35

46
def test_csh(activation_tester_class, activation_tester):
57
class Fish(activation_tester_class):
68
def __init__(self, session):
7-
super(Fish, self).__init__(session, "fish", "activate.fish", "fish")
9+
super(Fish, self).__init__(FishActivator, session, "fish", "activate.fish", "fish")
810

911
activation_tester(Fish)

tests/unit/activation/test_powershell.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
import pipes
44
import sys
55

6+
from virtualenv.activation import PowerShellActivator
7+
68

79
def test_powershell(activation_tester_class, activation_tester):
810
class PowerShell(activation_tester_class):
911
def __init__(self, session):
1012
cmd = "powershell.exe" if sys.platform == "win32" else "pwsh"
11-
super(PowerShell, self).__init__(session, cmd, "activate.ps1", "ps1")
13+
super(PowerShell, self).__init__(PowerShellActivator, session, cmd, "activate.ps1", "ps1")
1214
self._version_cmd = [self.cmd, "-c", "$PSVersionTable"]
1315
self.activate_cmd = "."
1416

tests/unit/activation/test_python_activator.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
import os
55
import sys
66

7+
from virtualenv.activation import PythonActivator
8+
79

810
def test_python(raise_on_non_source_class, activation_tester):
911
class Python(raise_on_non_source_class):
1012
def __init__(self, session):
1113
super(Python, self).__init__(
14+
PythonActivator,
1215
session,
1316
sys.executable,
1417
activate_script="activate_this.py",

tests/unit/activation/test_xonosh.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import sys
44

5+
from virtualenv.activation import XonoshActivator
6+
57

68
def test_xonosh(activation_tester_class, activation_tester):
79
class Xonosh(activation_tester_class):
810
def __init__(self, session):
9-
super(Xonosh, self).__init__(session, "xonsh", "activate.xsh", "xsh")
11+
super(Xonosh, self).__init__(XonoshActivator, session, "xonsh", "activate.xsh", "xsh")
1012
self._invoke_script = [sys.executable, "-m", "xonsh"]
1113
self.__version_cmd = [sys.executable, "-m", "xonsh", "--version"]
1214

0 commit comments

Comments
 (0)