-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Description
we should test this! just writing this in the gh comment box, haven't run it, but ya since this is a template repo it makes sense for us to actually be able to test the markdown it renders, and this seems like a good opportunity to get some basic patterns in a test_markdown.py
module or something
# add to test deps
import mistune
def _recursive_extract(parsed: list[dict], typ: str) -> list[dict]:
res = []
for block in parsed:
if block.get('type') == typ:
res.append(block)
if 'children' in block:
res.extend(_recursive_extract(block, typ))
return res
@pytest.mark.parameterize("username", ["juno", None])
@pytest.mark.parameterize("use_git", [True, False])
def test_contributing_links(username, use_git):
project = generated(username=username, use_git=use_git)
contributing = (project / "CONTRIBUTING.md").read_text()
parsed = mistune.Markdown()(contributing)
links = _recursive_extract(parsed, "link")
urls = [link['attrs']['url'] for link in links]
if username and use_git:
# we would also want to test for no broken links, as well as include all the links we expect to exist,
# but just writing a quick 5 minute example
assert f"https://github.com/{username}/alien-clones" in urls
else:
assert not any(["https://github.com" in url for url in urls])
Originally posted by @sneakers-the-rat in #95 (comment)
Metadata
Metadata
Assignees
Labels
No labels