Skip to content

Commit

Permalink
add test for defining new placeholder
Browse files Browse the repository at this point in the history
  • Loading branch information
petrnymsa committed Jan 9, 2020
1 parent 41ca378 commit 6a85312
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion tests/test_jdog.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import re

import jdog as jd
from jdog.placeholder.name import NamePlaceholder
from jdog.placeholder.placeholder import FuncStrPlaceholder, FuncPlaceholder


def test_parse_basic():
Expand All @@ -24,4 +27,22 @@ def name_placeholder(_):
jdog.parse_scheme(scheme)
monkeypatch.setattr(NamePlaceholder, 'exec', name_placeholder)

assert jdog.generate() == '{"name":"John Doe"}'
assert jdog.generate() == '{"name":"John Doe"}'


def test_add_new():
scheme = """{"f":"{{test}}"}"""

def match(token):
return re.match(r'^{{test}}$', token)

jdog = jd.Jdog()
jdog.add_matcher('test', match, lambda tok,arg: FuncStrPlaceholder(tok,arg, lambda _: 'foo'))

jdog.parse_scheme(scheme)
res = jdog.generate()

assert res == """{"f":"foo"}"""



0 comments on commit 6a85312

Please sign in to comment.