-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_bin.py
44 lines (30 loc) · 1.05 KB
/
test_bin.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
36
37
38
39
40
41
42
43
44
import subprocess
def run_cmd(cmd):
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
shell=True)
p.wait()
return p.returncode, p.stdout, p.stderr
def test_bin_hy():
ret = run_cmd("echo | bin/hy")
assert ret[0] == 0
def test_bin_hy_stdin():
ret = run_cmd("echo \"(koan)\" | bin/hy")
assert ret[0] == 0
assert "monk" in ret[1].read().decode("utf-8")
def test_bin_hy_cmd():
ret = run_cmd("bin/hy -c \"(koan)\"")
assert ret[0] == 0
assert "monk" in ret[1].read().decode("utf-8")
ret = run_cmd("bin/hy -c \"(koan\"")
assert ret[0] == 1
assert "LexException" in ret[1].read().decode("utf-8")
def test_bin_hy_icmd():
ret = run_cmd("echo \"(ideas)\" | bin/hy -i \"(koan)\"")
assert ret[0] == 0
output = ret[1].read().decode("utf-8")
assert "monk" in output
assert "figlet" in output
def test_bin_hy_file():
ret = run_cmd("bin/hy eg/nonfree/halting-problem/halting.hy")
assert ret[0] == 0
assert "27" in ret[1].read().decode("utf-8")