-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_main.py
More file actions
61 lines (49 loc) · 1.58 KB
/
Copy pathtest_main.py
File metadata and controls
61 lines (49 loc) · 1.58 KB
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
# @author Daniel McCoy Stephenson
# @since 8/21/2026
import importlib.util
import pytest
import main
from main import printNumbers
def loadMainFresh():
spec = importlib.util.spec_from_file_location("mainFresh", main.__file__)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
return module
def test_printNumbers_single_item(capsys):
printNumbers([5])
assert capsys.readouterr().out == "[5]\n"
def test_printNumbers_multiple_items(capsys):
printNumbers([1, 2, 3])
assert capsys.readouterr().out == "[1, 2, 3]\n"
def test_printNumbers_letters(capsys):
printNumbers(['a', 'b'])
assert capsys.readouterr().out == "[a, b]\n"
def test_printNumbers_decimals(capsys):
printNumbers([1.2, 5.0])
assert capsys.readouterr().out == "[1.2, 5.0]\n"
def test_printNumbers_does_not_mutate(capsys):
numbers = [1, 2, 3]
printNumbers(numbers)
capsys.readouterr()
assert numbers == [1, 2, 3]
def test_printNumbers_mixed_types(capsys):
printNumbers([None, True, 'a', 2.5])
assert capsys.readouterr().out == "[None, True, a, 2.5]\n"
def test_printNumbers_returns_nothing(capsys):
assert printNumbers([1, 2]) is None
capsys.readouterr()
def test_printNumbers_empty_raises():
with pytest.raises(IndexError):
printNumbers([])
def test_run_prints_before_and_after(capsys):
loadMainFresh()
assert capsys.readouterr().out == (
"Num rotations: 1\n"
"\n"
"Before:\n"
"[1, 2, 3, 4, 5, 6]\n"
"\n"
"After:\n"
"[2, 3, 4, 5, 6, 1]\n"
"\n"
)