07dec18dc3
* tells you there's a lex error, but doesn't tell you much else * adds tests for all new bin/hy functionality
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
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")
|