executablebooks / markdown-it-py

Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed. Now in Python!
https://markdown-it-py.readthedocs.io
MIT License
662 stars 68 forks source link

3.0.0: pytest if failing in tests/test_linkify.py and some tests/test_port/test_fixtures.py units #312

Closed kloczek closed 6 months ago

kloczek commented 7 months ago

Describe the bug

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

Reproduce the bug

Will drop in next comment.

List your environment

Here is list of installed modules in build env

```console Package Version ------------------ ------- build 1.0.3 cppclean 0.13 distro 1.8.0 dnf 4.18.1 exceptiongroup 1.1.3 gpg 1.23.0 importlib-metadata 6.8.0 iniconfig 2.0.0 installer 0.7.0 libdnf 0.72.0 linkify-it-py 2.0.2 mdurl 0.1.2 packaging 23.2 pluggy 1.3.0 pyproject_hooks 1.0.0 pytest 7.4.3 pytest-datadir 1.5.0 pytest-regressions 2.5.0 python-dateutil 2.8.2 PyYAML 6.0.1 six 1.16.0 tomli 2.0.1 uc-micro-py 1.0.2 wheel 0.41.3 zipp 3.17.0 ```
kloczek commented 7 months ago

Here is pytest output:

```console + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-markdown-it-py-3.0.0-3.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-markdown-it-py-3.0.0-3.fc35.x86_64/usr/lib/python3.8/site-packages + /usr/bin/pytest -ra -m 'not network' tests ==================================================================================== test session starts ==================================================================================== platform linux -- Python 3.8.18, pytest-7.4.3, pluggy-1.3.0 rootdir: /home/tkloczko/rpmbuild/BUILD/markdown-it-py-3.0.0 configfile: pyproject.toml plugins: datadir-1.5.0, regressions-2.5.0 collected 902 items tests/test_cli.py ..... [ 0%] tests/test_fuzzer.py ... [ 0%] tests/test_linkify.py F [ 0%] tests/test_tree.py ....... [ 1%] tests/test_api/test_main.py ........... [ 2%] tests/test_api/test_plugin_creation.py ......... [ 3%] tests/test_api/test_token.py .. [ 4%] tests/test_cmark_spec/test_spec.py .................................................................................................................................................. [ 20%] ..................................................................................................................................................................................... [ 40%] ..................................................................................................................................................................................... [ 60%] ................................................................................................................................................. [ 76%] tests/test_port/test_fixtures.py FFFFFFFFFFFFFFFFFFFFFFFFFF.......................................................................................................................... [ 93%] ............................................ [ 97%] tests/test_port/test_misc.py .. [ 98%] tests/test_port/test_no_end_newline.py ............. [ 99%] tests/test_port/test_references.py .... [100%] ========================================================================================= FAILURES ========================================================================================== _____________________________________________________________________________________ test_token_levels _____________________________________________________________________________________ def test_token_levels(): mdit = MarkdownIt(options_update={"linkify": True}).enable("linkify") > tokens = mdit.parse("www.python.org") tests/test_linkify.py:6: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = def linkify(state: StateCore) -> None: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_core/linkify.py:21: ModuleNotFoundError _ test_linkify[1-linkify-url http://www.youtube.com/watch?v=5Jt5GEr4AYg.\n-

url http://www.youtube.com/watch?v=5Jt5GEr4AYg.

\n] _ line = 1, title = 'linkify', input = 'url http://www.youtube.com/watch?v=5Jt5GEr4AYg.\n' expected = '

url http://www.youtube.com/watch?v=5Jt5GEr4AYg.

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[8 of 47], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ___________________ test_linkify[9-don't touch text in links-[https://example.com](https://example.com)\n-

https://example.com

\n] ___________________ line = 9, title = "don't touch text in links", input = '[https://example.com](https://example.com)\n', expected = '

https://example.com

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[0 of 42], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ___________________________ test_linkify[17-don't touch text in autolinks-\n-

https://example.com

\n] ___________________________ line = 17, title = "don't touch text in autolinks", input = '\n', expected = '

https://example.com

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[0 of 21], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _________ test_linkify[25-don't touch text in html tags-https://example.com\n-

https://example.com

\n] _________ line = 25, title = "don't touch text in html tags", input = 'https://example.com\n' expected = '

https://example.com

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[0 of 53], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ________ test_linkify[32-entities inside raw links-https://example.com/foo&bar\n-

https://example.com/foo&bar

\n] ________ line = 32, title = 'entities inside raw links', input = 'https://example.com/foo&bar\n' expected = '

https://example.com/foo&bar

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[5 of 31], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _ test_linkify[40-emphasis inside raw links (asterisk, can happen in links with params)-https://example.com/foo*bar*baz\n-

https://example.com/foo*bar*baz

\n] _ line = 40, title = 'emphasis inside raw links (asterisk, can happen in links with params)', input = 'https://example.com/foo*bar*baz\n' expected = '

https://example.com/foo*bar*baz

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[5 of 31], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError __ test_linkify[48-emphasis inside raw links (underscore)-http://example.org/foo._bar_-_baz\n-

http://example.org/foo._bar_-_baz

\n] ___ line = 48, title = 'emphasis inside raw links (underscore)', input = 'http://example.org/foo._bar_-_baz\n' expected = '

http://example.org/foo._bar_-_baz

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[4 of 33], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _________ test_linkify[56-backticks inside raw links-https://example.com/foo`bar`baz\n-

https://example.com/foo`bar`baz

\n] __________ line = 56, title = 'backticks inside raw links', input = 'https://example.com/foo`bar`baz\n' expected = '

https://example.com/foo`bar`baz

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[5 of 31], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ____ test_linkify[64-links inside raw links-https://example.com/foo[123](456)bar\n-

https://example.com/foo[123](456)bar

\n] ____ line = 64, title = 'links inside raw links', input = 'https://example.com/foo[123](456)bar\n' expected = '

https://example.com/foo[123](456)bar

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[5 of 36], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _________________________________________ test_linkify[72-escapes not allowed at the start-\\https://example.com\n-

\\https://example.com

\n] __________________________________________ line = 72, title = 'escapes not allowed at the start', input = '\\https://example.com\n', expected = '

\\https://example.com

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[0 of 20], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ____________________________________________ test_linkify[80-escapes not allowed at comma-https\\://example.com\n-

https://example.com

\n] _____________________________________________ line = 80, title = 'escapes not allowed at comma', input = 'https\\://example.com\n', expected = '

https://example.com

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[5 of 20], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ___________________ test_linkify[88-escapes not allowed at slashes-https:\\//aa.org https://bb.org\n-

https://aa.org https://bb.org

\n] ___________________ line = 88, title = 'escapes not allowed at slashes', input = 'https:\\//aa.org https://bb.org\n', expected = '

https://aa.org https://bb.org

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[5 of 30], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _______________________________________________ test_linkify[96-fuzzy link shouldn't match cc.org-https:/\\/cc.org\n-

https://cc.org

\n] _______________________________________________ line = 96, title = "fuzzy link shouldn't match cc.org", input = 'https:/\\/cc.org\n', expected = '

https://cc.org

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[5 of 15], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _ test_linkify[104-bold links (exclude markup of pairs from link tail)-**http://example.com/foobar**\n-

http://example.com/foobar

\n] _ line = 104, title = 'bold links (exclude markup of pairs from link tail)', input = '**http://example.com/foobar**\n' expected = '

http://example.com/foobar

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[0 of 29], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ______________________________ test_linkify[111-match links without protocol-www.example.org\n-

www.example.org

\n] _______________________________ line = 111, title = 'match links without protocol', input = 'www.example.org\n', expected = '

www.example.org

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = def linkify(state: StateCore) -> None: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_core/linkify.py:21: ModuleNotFoundError _______________________________________________ test_linkify[118-coverage, prefix not valid-http:/example.com/\n-

http:/example.com/

\n] _______________________________________________ line = 118, title = 'coverage, prefix not valid', input = 'http:/example.com/\n', expected = '

http:/example.com/

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[4 of 18], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _ test_linkify[126-coverage, negative link level-[https://example.com](https://example.com)\n-

https://example.com

\n] _ line = 126, title = 'coverage, negative link level', input = '[https://example.com](https://example.com)\n' expected = '

https://example.com

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[0 of 46], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _ test_linkify[134-emphasis with '*', real link:-http://cdecl.ridiculousfish.com/?q=int+%28*f%29+%28float+*%29%3B\n-

http://cdecl.ridiculousfish.com/?q=int+(*f)+(float+*)%3B

\n] _ line = 134, title = "emphasis with '*', real link:", input = 'http://cdecl.ridiculousfish.com/?q=int+%28*f%29+%28float+*%29%3B\n' expected = '

http://cdecl.ridiculousfish.com/?q=int+(*f)+(float+*)%3B

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[4 of 64], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _ test_linkify[141-emphasis with '_', real link:-https://www.sell.fi/sites/default/files/elainlaakarilehti/tieteelliset_artikkelit/kahkonen_t._et_al.canine_pancreatitis-_review.pdf\n-

https://www.sell.fi/sites/default/files/elainlaakarilehti/tieteelliset_artikkelit/kahkonen_t._et_al.canine_pancreatitis-_review.pdf

\n] _ line = 141, title = "emphasis with '_', real link:" input = 'https://www.sell.fi/sites/default/files/elainlaakarilehti/tieteelliset_artikkelit/kahkonen_t._et_al.canine_pancreatitis-_review.pdf\n' expected = '

text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[5 of 131], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _ test_linkify[148-emails-test@example.com\n\nmailto:test@example.com\n-

test@example.com

\n

mailto:test@example.com

\n] _ line = 148, title = 'emails', input = 'test@example.com\n\nmailto:test@example.com\n' expected = '

test@example.com

\n

mailto:test@example.com

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[4 of 16], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError _____________________ test_linkify[159-typorgapher should not break href-http://example.com/(c)\n-

http://example.com/(c)

\n] _____________________ line = 159, title = 'typorgapher should not break href', input = 'http://example.com/(c)\n', expected = '

http://example.com/(c)

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[4 of 22], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ______________________________________ test_linkify[166-before line-before\ngithub.com\n-

before\ngithub.com

\n] _______________________________________ line = 166, title = 'before line', input = 'before\ngithub.com\n', expected = '

before\ngithub.com

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[6 of 17], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ________________________________________ test_linkify[175-after line-github.com\nafter\n-

github.com\nafter

\n] ________________________________________ line = 175, title = 'after line', input = 'github.com\nafter\n', expected = '

github.com\nafter

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[10 of 16], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ____________________________ test_linkify[184-before after lines-before\ngithub.com\nafter\n-

before\ngithub.com\nafter

\n] ____________________________ line = 184, title = 'before after lines', input = 'before\ngithub.com\nafter\n', expected = '

before\ngithub.com\nafter

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[6 of 23], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ___________ test_linkify[195-before after lines with blank line-before\n\ngithub.com\n\nafter\n-

before

\n

github.com

\n

after

\n] ___________ line = 195, title = 'before after lines with blank line', input = 'before\n\ngithub.com\n\nafter\n' expected = '

before

\n

github.com

\n

after

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = def linkify(state: StateCore) -> None: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_core/linkify.py:21: ModuleNotFoundError _________________________________________________________ test_linkify[208-Don't match escaped-google\\.com\n-

google.com

\n] __________________________________________________________ line = 208, title = "Don't match escaped", input = 'google\\.com\n', expected = '

google.com

\n' @pytest.mark.parametrize( "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), ) def test_linkify(line, title, input, expected): md = MarkdownIt().enable("linkify") md.options["linkify"] = True > text = md.render(input) tests/test_port/test_fixtures.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ markdown_it/main.py:291: in render return self.renderer.render(self.parse(src, env), self.options, env) markdown_it/main.py:276: in parse self.core.process(state) markdown_it/parser_core.py:45: in process rule(state) markdown_it/rules_core/inline.py:10: in inline state.md.inline.parse(token.content, state.md, state.env, token.children) markdown_it/parser_inline.py:143: in parse self.tokenize(state) markdown_it/parser_inline.py:123: in tokenize ok = rule(state, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ state = StateInline(pos=[6 of 11], token=0), silent = False def linkify(state: StateInline, silent: bool) -> bool: """Rule for identifying plain-text links.""" if not state.md.options.linkify: return False if state.linkLevel > 0: return False if not state.md.linkify: > raise ModuleNotFoundError("Linkify enabled but not installed.") E ModuleNotFoundError: Linkify enabled but not installed. markdown_it/rules_inline/linkify.py:17: ModuleNotFoundError ================================================================================== short test summary info ================================================================================== FAILED tests/test_linkify.py::test_token_levels - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[1-linkify-url http://www.youtube.com/watch?v=5Jt5GEr4AYg.\n-

url http://www.youtube.com/watch?v=5Jt5GEr4AYg.

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[9-don't touch text in links-[https://example.com](https://example.com)\n-

https://example.com

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[17-don't touch text in autolinks-\n-

https://example.com

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[25-don't touch text in html tags-https://example.com\n-

https://example.com

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[32-entities inside raw links-https://example.com/foo&bar\n-

https://example.com/foo&bar

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[40-emphasis inside raw links (asterisk, can happen in links with params)-https://example.com/foo*bar*baz\n-

https://example.com/foo*bar*baz

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[48-emphasis inside raw links (underscore)-http://example.org/foo._bar_-_baz\n-

http://example.org/foo._bar_-_baz

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[56-backticks inside raw links-https://example.com/foo`bar`baz\n-

https://example.com/foo`bar`baz

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[64-links inside raw links-https://example.com/foo[123](456)bar\n-

https://example.com/foo[123](456)bar

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[72-escapes not allowed at the start-\\https://example.com\n-

\\https://example.com

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[80-escapes not allowed at comma-https\\://example.com\n-

https://example.com

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[88-escapes not allowed at slashes-https:\\//aa.org https://bb.org\n-

https://aa.org https://bb.org

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[96-fuzzy link shouldn't match cc.org-https:/\\/cc.org\n-

https://cc.org

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[104-bold links (exclude markup of pairs from link tail)-**http://example.com/foobar**\n-

http://example.com/foobar

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[111-match links without protocol-www.example.org\n-

www.example.org

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[118-coverage, prefix not valid-http:/example.com/\n-

http:/example.com/

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[126-coverage, negative link level-[https://example.com](https://example.com)\n-

https://example.com

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[134-emphasis with '*', real link:-http://cdecl.ridiculousfish.com/?q=int+%28*f%29+%28float+*%29%3B\n-

http://cdecl.ridiculousfish.com/?q=int+(*f)+(float+*)%3B

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[141-emphasis with '_', real link:-https://www.sell.fi/sites/default/files/elainlaakarilehti/tieteelliset_artikkelit/kahkonen_t._et_al.canine_pancreatitis-_review.pdf\n-

https://www.sell.fi/sites/default/files/elainlaakarilehti/tieteelliset_artikkelit/kahkonen_t._et_al.canine_pancreatitis-_review.pdf

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[148-emails-test@example.com\n\nmailto:test@example.com\n-

test@example.com

\n

mailto:test@example.com

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[159-typorgapher should not break href-http://example.com/(c)\n-

http://example.com/(c)

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[166-before line-before\ngithub.com\n-

before\ngithub.com

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[175-after line-github.com\nafter\n-

github.com\nafter

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[184-before after lines-before\ngithub.com\nafter\n-

before\ngithub.com\nafter

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[195-before after lines with blank line-before\n\ngithub.com\n\nafter\n-

before

\n

github.com

\n

after

\n] - ModuleNotFoundError: Linkify enabled but not installed. FAILED tests/test_port/test_fixtures.py::test_linkify[208-Don't match escaped-google\\.com\n-

google.com

\n] - ModuleNotFoundError: Linkify enabled but not installed. ```
kloczek commented 7 months ago

Most of the units complains about missing 'linkify` however only such module which I see on pypi is from 2009 https://pypi.org/project/linkify/