summaryrefslogtreecommitdiffstats
path: root/tests/test_port/test_references
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/test_port/test_references.py53
-rw-r--r--tests/test_port/test_references/test_inline_definitions.yml94
-rw-r--r--tests/test_port/test_references/test_store_labels.yml159
-rw-r--r--tests/test_port/test_references/test_use_existing_env.yml84
4 files changed, 390 insertions, 0 deletions
diff --git a/tests/test_port/test_references.py b/tests/test_port/test_references.py
new file mode 100644
index 0000000..32e389d
--- /dev/null
+++ b/tests/test_port/test_references.py
@@ -0,0 +1,53 @@
+from markdown_it import MarkdownIt
+
+
+def test_ref_definitions():
+
+ md = MarkdownIt()
+ src = "[a]: abc\n\n[b]: xyz\n\n[b]: ijk"
+ env = {}
+ tokens = md.parse(src, env)
+ assert tokens == []
+ assert env == {
+ "references": {
+ "A": {"title": "", "href": "abc", "map": [0, 1]},
+ "B": {"title": "", "href": "xyz", "map": [2, 3]},
+ },
+ "duplicate_refs": [{"href": "ijk", "label": "B", "map": [4, 5], "title": ""}],
+ }
+
+
+def test_use_existing_env(data_regression):
+ md = MarkdownIt()
+ src = "[a]\n\n[c]: ijk"
+ env = {
+ "references": {
+ "A": {"title": "", "href": "abc", "map": [0, 1]},
+ "B": {"title": "", "href": "xyz", "map": [2, 3]},
+ }
+ }
+ tokens = md.parse(src, env)
+ data_regression.check([token.as_dict() for token in tokens])
+ assert env == {
+ "references": {
+ "A": {"title": "", "href": "abc", "map": [0, 1]},
+ "B": {"title": "", "href": "xyz", "map": [2, 3]},
+ "C": {"title": "", "href": "ijk", "map": [2, 3]},
+ }
+ }
+
+
+def test_store_labels(data_regression):
+ md = MarkdownIt()
+ md.options["store_labels"] = True
+ src = "[a]\n\n![a]\n\n[a]: ijk"
+ tokens = md.parse(src)
+ data_regression.check([token.as_dict() for token in tokens])
+
+
+def test_inline_definitions(data_regression):
+ md = MarkdownIt()
+ md.options["inline_definitions"] = True
+ src = '[a]: url "title"\n- [a]: url "title"'
+ tokens = md.parse(src)
+ data_regression.check([token.as_dict() for token in tokens])
diff --git a/tests/test_port/test_references/test_inline_definitions.yml b/tests/test_port/test_references/test_inline_definitions.yml
new file mode 100644
index 0000000..5ec210b
--- /dev/null
+++ b/tests/test_port/test_references/test_inline_definitions.yml
@@ -0,0 +1,94 @@
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map:
+ - 0
+ - 1
+ markup: ''
+ meta:
+ id: A
+ label: a
+ title: title
+ url: url
+ nesting: 0
+ tag: ''
+ type: definition
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map:
+ - 1
+ - 2
+ markup: '-'
+ meta: {}
+ nesting: 1
+ tag: ul
+ type: bullet_list_open
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 1
+ map:
+ - 1
+ - 2
+ markup: '-'
+ meta: {}
+ nesting: 1
+ tag: li
+ type: list_item_open
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 2
+ map:
+ - 1
+ - 2
+ markup: ''
+ meta:
+ id: A
+ label: a
+ title: title
+ url: url
+ nesting: 0
+ tag: ''
+ type: definition
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 1
+ map: null
+ markup: '-'
+ meta: {}
+ nesting: -1
+ tag: li
+ type: list_item_close
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: '-'
+ meta: {}
+ nesting: -1
+ tag: ul
+ type: bullet_list_close
diff --git a/tests/test_port/test_references/test_store_labels.yml b/tests/test_port/test_references/test_store_labels.yml
new file mode 100644
index 0000000..79f6f74
--- /dev/null
+++ b/tests/test_port/test_references/test_store_labels.yml
@@ -0,0 +1,159 @@
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map:
+ - 0
+ - 1
+ markup: ''
+ meta: {}
+ nesting: 1
+ tag: p
+ type: paragraph_open
+- attrs: null
+ block: true
+ children:
+ - attrs:
+ - - href
+ - ijk
+ block: false
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: ''
+ meta:
+ label: A
+ nesting: 1
+ tag: a
+ type: link_open
+ - attrs: null
+ block: false
+ children: null
+ content: a
+ hidden: false
+ info: ''
+ level: 1
+ map: null
+ markup: ''
+ meta: {}
+ nesting: 0
+ tag: ''
+ type: text
+ - attrs: null
+ block: false
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: ''
+ meta: {}
+ nesting: -1
+ tag: a
+ type: link_close
+ content: '[a]'
+ hidden: false
+ info: ''
+ level: 1
+ map:
+ - 0
+ - 1
+ markup: ''
+ meta: {}
+ nesting: 0
+ tag: ''
+ type: inline
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: ''
+ meta: {}
+ nesting: -1
+ tag: p
+ type: paragraph_close
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map:
+ - 2
+ - 3
+ markup: ''
+ meta: {}
+ nesting: 1
+ tag: p
+ type: paragraph_open
+- attrs: null
+ block: true
+ children:
+ - attrs:
+ - - src
+ - ijk
+ - - alt
+ - ''
+ block: false
+ children:
+ - attrs: null
+ block: false
+ children: null
+ content: a
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: ''
+ meta: {}
+ nesting: 0
+ tag: ''
+ type: text
+ content: a
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: ''
+ meta:
+ label: A
+ nesting: 0
+ tag: img
+ type: image
+ content: '![a]'
+ hidden: false
+ info: ''
+ level: 1
+ map:
+ - 2
+ - 3
+ markup: ''
+ meta: {}
+ nesting: 0
+ tag: ''
+ type: inline
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: ''
+ meta: {}
+ nesting: -1
+ tag: p
+ type: paragraph_close
diff --git a/tests/test_port/test_references/test_use_existing_env.yml b/tests/test_port/test_references/test_use_existing_env.yml
new file mode 100644
index 0000000..1a72337
--- /dev/null
+++ b/tests/test_port/test_references/test_use_existing_env.yml
@@ -0,0 +1,84 @@
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map:
+ - 0
+ - 1
+ markup: ''
+ meta: {}
+ nesting: 1
+ tag: p
+ type: paragraph_open
+- attrs: null
+ block: true
+ children:
+ - attrs:
+ - - href
+ - abc
+ block: false
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: ''
+ meta: {}
+ nesting: 1
+ tag: a
+ type: link_open
+ - attrs: null
+ block: false
+ children: null
+ content: a
+ hidden: false
+ info: ''
+ level: 1
+ map: null
+ markup: ''
+ meta: {}
+ nesting: 0
+ tag: ''
+ type: text
+ - attrs: null
+ block: false
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: ''
+ meta: {}
+ nesting: -1
+ tag: a
+ type: link_close
+ content: '[a]'
+ hidden: false
+ info: ''
+ level: 1
+ map:
+ - 0
+ - 1
+ markup: ''
+ meta: {}
+ nesting: 0
+ tag: ''
+ type: inline
+- attrs: null
+ block: true
+ children: null
+ content: ''
+ hidden: false
+ info: ''
+ level: 0
+ map: null
+ markup: ''
+ meta: {}
+ nesting: -1
+ tag: p
+ type: paragraph_close