88 lines
1.6 KiB
Python
88 lines
1.6 KiB
Python
import pytest
|
|
|
|
from favro_sync.favro_markdown import CardFileFormatter
|
|
|
|
EXAMPLE_TEXT_1 = """
|
|
---
|
|
aliases:
|
|
- Hello World
|
|
archived: false
|
|
todo-list-completed: false
|
|
---
|
|
|
|
# Hello World
|
|
|
|
Test description
|
|
|
|
## Other header
|
|
|
|
1. Derp
|
|
2. Derp
|
|
3. Derp
|
|
|
|
- [ ] Task 1
|
|
- [ ] Task 2
|
|
""".strip()
|
|
|
|
EXAMPLE_TEXT_2 = """
|
|
---
|
|
aliases:
|
|
- Name of Card
|
|
archived: true
|
|
assignments:
|
|
- '[[Gunnar Gunnarson]]'
|
|
- '[[Alice Alicedottor]]'
|
|
dependencies:
|
|
- '[[PAR-9999]]'
|
|
tags:
|
|
- tag1
|
|
- tag2
|
|
todo-list-completed: true
|
|
---
|
|
|
|
# Name of Card
|
|
|
|
Great news everyone! My weird program actually works!
|
|
""".strip()
|
|
|
|
EXAMPLE_TEXT_3 = """
|
|
---
|
|
aliases:
|
|
- 'Card: The Adventure of Card'
|
|
url: https://example.org
|
|
---
|
|
|
|
# Card: The Adventure of Card
|
|
|
|
Description of Card.
|
|
""".strip()
|
|
|
|
EXAMPLES = [EXAMPLE_TEXT_1, EXAMPLE_TEXT_2, EXAMPLE_TEXT_3]
|
|
|
|
FORMATTER = CardFileFormatter()
|
|
|
|
|
|
@pytest.mark.parametrize('example_text', EXAMPLES)
|
|
def test_parse_and_render(example_text: str):
|
|
card_contents = FORMATTER.parse_card_contents(example_text)
|
|
|
|
assert card_contents.name is not None
|
|
assert '#' not in card_contents.name
|
|
assert '---' not in card_contents.description
|
|
assert FORMATTER.format_card_contents(card_contents) == example_text
|
|
|
|
|
|
def test_parse_and_render_1():
|
|
card_contents = FORMATTER.parse_card_contents(EXAMPLE_TEXT_1)
|
|
assert card_contents.name == 'Hello World'
|
|
|
|
|
|
def test_parse_and_render_2():
|
|
card_contents = FORMATTER.parse_card_contents(EXAMPLE_TEXT_2)
|
|
assert card_contents.name == 'Name of Card'
|
|
|
|
|
|
def test_parse_and_render_3():
|
|
card_contents = FORMATTER.parse_card_contents(EXAMPLE_TEXT_3)
|
|
assert card_contents.name == 'Card: The Adventure of Card'
|