-
-
Notifications
You must be signed in to change notification settings - Fork 1k
/
test_batch.py
35 lines (25 loc) · 1.19 KB
/
test_batch.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from __future__ import annotations
from shlex import quote
import pytest
from virtualenv.activation import BatchActivator
@pytest.mark.usefixtures("activation_python")
def test_batch(activation_tester_class, activation_tester, tmp_path):
version_script = tmp_path / "version.bat"
version_script.write_text("ver", encoding="utf-8")
class Batch(activation_tester_class):
def __init__(self, session) -> None:
super().__init__(BatchActivator, session, None, "activate.bat", "bat")
self._version_cmd = [str(version_script)]
self._invoke_script = []
self.deactivate = "call deactivate"
self.activate_cmd = "call"
self.pydoc_call = f"call {self.pydoc_call}"
self.unix_line_ending = False
def _get_test_lines(self, activate_script):
return ["@echo off", *super()._get_test_lines(activate_script)]
def quote(self, s):
"""double quotes needs to be single, and single need to be double"""
return "".join(("'" if c == '"' else ('"' if c == "'" else c)) for c in quote(s))
def print_prompt(self):
return "echo %PROMPT%"
activation_tester(Batch)