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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
import io
from rich.console import Console
from rich.prompt import Prompt, IntPrompt, Confirm
def test_prompt_str():
INPUT = "egg\nfoo"
console = Console(file=io.StringIO())
name = Prompt.ask(
"what is your name",
console=console,
choices=["foo", "bar"],
default="baz",
stream=io.StringIO(INPUT),
)
assert name == "foo"
expected = "what is your name [foo/bar] (baz): Please select one of the available options\nwhat is your name [foo/bar] (baz): "
output = console.file.getvalue()
print(repr(output))
assert output == expected
def test_prompt_str_default():
INPUT = ""
console = Console(file=io.StringIO())
name = Prompt.ask(
"what is your name",
console=console,
default="Will",
stream=io.StringIO(INPUT),
)
assert name == "Will"
expected = "what is your name (Will): "
output = console.file.getvalue()
print(repr(output))
assert output == expected
def test_prompt_int():
INPUT = "foo\n100"
console = Console(file=io.StringIO())
number = IntPrompt.ask(
"Enter a number",
console=console,
stream=io.StringIO(INPUT),
)
assert number == 100
expected = "Enter a number: Please enter a valid integer number\nEnter a number: "
output = console.file.getvalue()
print(repr(output))
assert output == expected
def test_prompt_confirm_no():
INPUT = "foo\nNO\nn"
console = Console(file=io.StringIO())
answer = Confirm.ask(
"continue",
console=console,
stream=io.StringIO(INPUT),
)
assert answer is False
expected = "continue [y/n]: Please enter Y or N\ncontinue [y/n]: Please enter Y or N\ncontinue [y/n]: "
output = console.file.getvalue()
print(repr(output))
assert output == expected
def test_prompt_confirm_yes():
INPUT = "foo\nNO\ny"
console = Console(file=io.StringIO())
answer = Confirm.ask(
"continue",
console=console,
stream=io.StringIO(INPUT),
)
assert answer is True
expected = "continue [y/n]: Please enter Y or N\ncontinue [y/n]: Please enter Y or N\ncontinue [y/n]: "
output = console.file.getvalue()
print(repr(output))
assert output == expected
def test_prompt_confirm_default():
INPUT = "foo\nNO\ny"
console = Console(file=io.StringIO())
answer = Confirm.ask(
"continue", console=console, stream=io.StringIO(INPUT), default=True
)
assert answer is True
expected = "continue [y/n] (y): Please enter Y or N\ncontinue [y/n] (y): Please enter Y or N\ncontinue [y/n] (y): "
output = console.file.getvalue()
print(repr(output))
assert output == expected
|