diff --git a/tests/test_html.py b/tests/test_html.py
index 23e6bb1..5ccd6a7 100644
--- a/tests/test_html.py
+++ b/tests/test_html.py
@@ -8,21 +8,29 @@ from eorg.parser import parse_text
def test_emphasis():
text = "parse emphasis *bold text* _underlined text_ /italic text/ normal text"
- expected = [Token(token='TEXT', value='parse emphasis ' ), Token(token='B', value='bold text'), Token(token='TEXT', value=' ' ), Token(token='U', value='underlined text'), Token(token='TEXT', value=' ' ), Token(token='I', value='italic text'), Token('TEXT', ' normal text')]
+ expected = [
+ Token(token="TEXT", value="parse emphasis "),
+ Token(token="B", value="bold text"),
+ Token(token="TEXT", value=" "),
+ Token(token="U", value="underlined text"),
+ Token(token="TEXT", value=" "),
+ Token(token="I", value="italic text"),
+ Token("TEXT", " normal text"),
+ ]
result = parse_text(text)
- assert result[0].token == 'TEXT'
+ assert result[0].token == "TEXT"
assert expected[0].value == result[0].value
- assert result[1].token == 'B'
+ assert result[1].token == "B"
assert expected[1].value == result[1].value
- assert result[2].token == 'TEXT'
+ assert result[2].token == "TEXT"
assert expected[2].value == result[2].value
- assert result[3].token == 'U'
+ assert result[3].token == "U"
assert expected[3].value == result[3].value
- assert result[4].token == 'TEXT'
+ assert result[4].token == "TEXT"
assert expected[4].value == result[4].value
- assert result[5].token == 'I'
+ assert result[5].token == "I"
assert expected[5].value == result[5].value
- assert result[6].token == 'TEXT'
+ assert result[6].token == "TEXT"
assert expected[6].value == result[6].value
@@ -39,23 +47,58 @@ def test_image():
assert result[2].value == expected[2].value
+def test_link():
+ text = "parse link [[../../test.html][test]] after link"
+ expected = [
+ Token("TEXT", "parse link "),
+ Token("IMG", ["../../test.html", "test"]),
+ Token("TEXT", " after link"),
+ ]
+ result = parse_text(text)
+ assert result[0].value == expected[0].value
+ assert result[1].value == expected[1].value
+ assert result[2].value == expected[2].value
+
def test_example():
text = StringIO(
- """
+ """
#+BEGIN_EXAMPLE
*I'm bold text*
/I'm italic text/
_I'm underlined text_
-#+END_EXAMPLE""")
+#+END_EXAMPLE"""
+ )
expected = [
Token("BREAK", ""),
- Token("EXAMPLE", """*I'm bold text*
+ Token(
+ "EXAMPLE",
+ """*I'm bold text*
/I'm italic text/
_I'm underlined text_
-"""),
+""",
+ ),
]
result = parse(text).doc
assert result[0].value == expected[0].value
assert result[1].value == expected[1].value
+
+
+def test_src_block():
+ text = StringIO(
+ """
+#+BEGIN_SRC sh :results output drawer
+head -n 5 examples/html-plain/example.py
+#+END_SRC"""
+ )
+
+ expected = [
+ Token("BREAK", ""),
+ Token("SRC", """head -n 5 examples/html-plain/example.py\n"""),
+ ]
+ result = parse(text).doc
+ print(result)
+ assert result[0].value == expected[0].value
+ assert result[1].attrs.get('language') == 'sh'
+ assert result[1].value == expected[1].value
diff --git a/tests/test_regex.py b/tests/test_regex.py
index c80a160..2fd238b 100644
--- a/tests/test_regex.py
+++ b/tests/test_regex.py
@@ -17,3 +17,21 @@ def test_example():
match = re.search(rx, text)
assert match is not None
+
+
+def test_source():
+ # invalid if no language specified
+ text="#+BEGIN_SRC"
+ rx = const.t_SRC_BEGIN
+ match = re.search(rx, text)
+ assert match is None
+
+ text="#+BEGIN_SRC "
+ rx = const.t_SRC_BEGIN
+ match = re.search(rx, text)
+ assert match is not None
+
+ text="#+BEGIN_SRC sh :results silent"
+ rx = const.t_SRC_BEGIN
+ match = re.search(rx, text)
+ assert match is not None