1
0
mirror of https://github.com/makeworld-the-better-one/md2gemini synced 2025-04-05 06:19:06 +02:00
md2gemini/tests/test_codeblock.py
2022-12-30 20:49:44 -05:00

99 lines
2.3 KiB
Python

from .util import normalize
from md2gemini import md2gemini
def f(md):
return normalize(md2gemini(md))
def test_no_extra_newline():
md = "Non code block\n\n code block here\n\nMore non code"
gem = "Non code block\n\n```\ncode block here\n```\n\nMore non code"
assert f(md) == gem
def test_with_extra_newline():
md = "Non code block\n\n code block here\n\n\nMore non code"
gem = "Non code block\n\n```\ncode block here\n\n```\n\nMore non code"
assert f(md) == gem
def test_ends_with_no_newlines():
md = "Non code block\n\n code block here"
gem = "Non code block\n\n```\ncode block here\n```"
assert f(md) == gem
def test_extra_newlines():
# https://github.com/makeworld-the-better-one/md2gemini/issues/40
md = "```\ntest\n\n\ntest2\n```\nokay"
gem = "```\ntest\n\n\ntest2\n```\n\nokay"
assert f(md) == gem
def test_nested_fences():
md = """
```
spaces should be preserved
```
even in here
there will be two lines
```
and still preserved, as that fence should not end the block
```
And now the block has ended.
This line should be eaten. (note -1 below)
"""
assert len(md.splitlines()) - 1 == len(f(md).splitlines())
def test_nested_fences_in_lists():
md = """
1. This item will have a fence.
```
This is the fence.
And this line shall be preserved.
```begin nested fence
nested fence
content
```
Continue preserving newlines.
```
2. This item has no fence
"""
assert len(md.splitlines()) == len(f(md).splitlines())
def test_nested_fences_in_lists_uneven():
md = """
1. This item will have a fence.
`````
This is the fence.
And this line shall be preserved.
```begin nested fence
nested fence
content
````
Continue preserving newlines.
````````````````
2. This item has no fence
"""
assert len(md.splitlines()) == len(f(md).splitlines())
def test_nested_fences_in_lists_uneven():
md = """
1. This item will have a fence.
~~~~~
This is the fence.
And this line shall be preserved.
```begin nested fence
nested fence
content
```
Continue preserving newlines.
~~~~~~~~~~~~~~~~
2. This item has no fence
"""
assert len(md.splitlines()) == len(f(md).splitlines())