diff --git a/setup.cfg b/setup.cfg index d5ca746..fec5c85 100644 --- a/setup.cfg +++ b/setup.cfg @@ -41,6 +41,12 @@ install_requires = PyGithub ~= 2.0 ruamel.yaml ~= 0.15 +[options.extras_require] +test = + mypy + pytest + pytest-cov + [options.packages.find] where = src diff --git a/src/solidation/__main__.py b/src/solidation/__main__.py index 37e550e..6bf0e52 100644 --- a/src/solidation/__main__.py +++ b/src/solidation/__main__.py @@ -250,7 +250,7 @@ def to_markdown(self) -> str: if user is None: user = i.user.login s += ( - f"- [{i.title}]({i.html_url}) by {user}" + f"- [{sanitize_md(i.title)}]({i.html_url}) by {user}" f" [{i.repository.full_name}]\n" ) @@ -437,6 +437,11 @@ def ensure_aware(dt: datetime) -> datetime: return dt.replace(tzinfo=timezone.utc) if dt.tzinfo is None else dt +def sanitize_md(s: str) -> str: + # Remove `[]` symbols to ensure correct markdown in the references + return re.sub(r'[\[\]]', '', s) + + @click.command() @click.option( "-c", diff --git a/src/solidation/tests/__init__.py b/src/solidation/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/solidation/tests/test_main.py b/src/solidation/tests/test_main.py new file mode 100644 index 0000000..59dd5cc --- /dev/null +++ b/src/solidation/tests/test_main.py @@ -0,0 +1,5 @@ +from ..__main__ import sanitize_md + + +def test_sanitize_md() -> None: + assert sanitize_md("[gh-actions](deps): Bump") == "gh-actions(deps): Bump" diff --git a/tox.ini b/tox.ini index 740b591..a49816e 100644 --- a/tox.ini +++ b/tox.ini @@ -1,8 +1,13 @@ [tox] -envlist = lint,typing +envlist = lint,typing,py3 isolated_build = True minversion = 3.3.0 +[testenv] +extras = test +commands = + python -m pytest -v {posargs} src + [testenv:lint] skip_install = True deps =