hy/tests/test_bin.py

45 lines
1.1 KiB
Python
Raw Normal View History

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")