34 lines
952 B
Python
34 lines
952 B
Python
|
|
from hy.macros import macro, process
|
|
|
|
from hy.models.expression import HyExpression
|
|
from hy.models.string import HyString
|
|
from hy.models.symbol import HySymbol
|
|
from hy.models.list import HyList
|
|
|
|
|
|
@macro("test")
|
|
def tmac(tree):
|
|
""" Turn an expression into a list """
|
|
return HyList(tree[1:])
|
|
|
|
|
|
def test_preprocessor_simple():
|
|
""" Test basic macro expantion """
|
|
obj = process(HyExpression(["test", "one", "two"]))
|
|
assert obj == HyList(["one", "two"])
|
|
assert type(obj) == HyList
|
|
|
|
|
|
def test_preprocessor_expression():
|
|
""" Test inner macro expantion """
|
|
obj = process(HyExpression([HySymbol("test"),
|
|
HyExpression([HySymbol("test"),
|
|
HyString("one"),
|
|
HyString("two")])]))
|
|
|
|
assert type(obj) == HyList
|
|
assert type(obj[0]) == HyList
|
|
|
|
assert obj[0] == HyList([HyString("one"), HyString("two")])
|