""" """ from lilith.interpreter import Bindings, Runtime, eval from lilith.reader import Module from lilith.parser import Args, Apply import pytest @pytest.mark.parametrize('expr, expected', [ (1, 1), ([1, 2], [1, 2]), ({"foo": "bar"}, {"foo": "bar"}), ]) def test_eval(expr, expected): assert eval( Runtime("test", dict()), Module("__repl__", dict()), Bindings("__root__", None), expr ) == expected def test_hello_world(capsys): assert eval( Runtime("test", {}), Module("__repl__", {"print": print}), Bindings("__root__", None), Apply("print", Args(["hello, world"], {})) ) is None captured = capsys.readouterr() assert captured.out == "hello, world\n"