Skip to content

Commit 6ed8c7c

Browse files
committed
updating tests for nested metadata
1 parent aec986b commit 6ed8c7c

File tree

4 files changed

+44
-9
lines changed

4 files changed

+44
-9
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ exclude: >
66
\.vscode/settings\.json|
77
tests/commonmark/commonmark\.json|
88
.*\.xml|
9-
tests/.*\.txt
9+
tests/.*\.txt|
1010
)$
1111
1212
repos:

myst_nb/parser.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,7 @@ def parse_block(src, start_line):
165165
# Note that myst_parser serialises dict/list like keys, when rendering to
166166
# docutils docinfo. These could be read back with `json.loads`.
167167
state.tokens = [
168-
Token(
169-
"front_matter", "", 0, content=({k: v for k, v in ntbk.metadata.items()}),
170-
)
168+
Token("front_matter", "", 0, content=({k: v for k, v in ntbk.metadata.items()}))
171169
] + state.tokens
172170

173171
# If there are widgets, this will embed the state of all widgets in a script

tests/test_parser.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,16 @@ def test_basic_run(sphinx_run, file_regression):
66
sphinx_run.build()
77
# print(sphinx_run.status())
88
assert sphinx_run.warnings() == ""
9-
assert sphinx_run.app.env.metadata == {"basic_run": {"test_name": "notebook1"}}
9+
assert set(sphinx_run.app.env.metadata["basic_run"].keys()) == {
10+
"test_name",
11+
"kernelspec",
12+
"language_info",
13+
}
14+
assert sphinx_run.app.env.metadata["basic_run"]["test_name"] == "notebook1"
15+
assert (
16+
sphinx_run.app.env.metadata["basic_run"]["kernelspec"]
17+
== '{"display_name": "Python 3", "language": "python", "name": "python3"}'
18+
)
1019
file_regression.check(sphinx_run.get_doctree().pformat(), extension=".xml")
1120

1221
filenames = {
@@ -20,11 +29,28 @@ def test_basic_run(sphinx_run, file_regression):
2029
)
2130
def test_complex_outputs(sphinx_run, file_regression):
2231
sphinx_run.build()
23-
# print(sphinx_run.status())
2432
assert sphinx_run.warnings() == ""
25-
assert sphinx_run.app.env.metadata == {
26-
"complex_outputs": {"celltoolbar": "Edit Metadata", "hide_input": "False"}
33+
34+
assert set(sphinx_run.app.env.metadata["complex_outputs"].keys()) == {
35+
"ipub",
36+
"hide_input",
37+
"nav_menu",
38+
"celltoolbar",
39+
"latex_envs",
40+
"kernelspec",
41+
"language_info",
42+
"jupytext",
43+
"toc",
44+
"varInspector",
2745
}
46+
assert (
47+
sphinx_run.app.env.metadata["complex_outputs"]["celltoolbar"] == "Edit Metadata"
48+
)
49+
assert sphinx_run.app.env.metadata["complex_outputs"]["hide_input"] == "False"
50+
assert (
51+
sphinx_run.app.env.metadata["complex_outputs"]["kernelspec"]
52+
== '{"display_name": "Python 3", "language": "python", "name": "python3"}'
53+
)
2854
file_regression.check(sphinx_run.get_doctree().pformat(), extension=".xml")
2955

3056
filenames = {

tests/test_text_based.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@ def test_basic_run(sphinx_run, file_regression, check_nbs):
99
sphinx_run.build()
1010
# print(sphinx_run.status())
1111
assert sphinx_run.warnings() == ""
12-
assert sphinx_run.app.env.metadata == {"basic_unrun": {"author": "Chris"}}
12+
assert set(sphinx_run.app.env.metadata["basic_unrun"].keys()) == {
13+
"jupytext",
14+
"kernelspec",
15+
"author",
16+
"source_map",
17+
"language_info",
18+
}
19+
assert sphinx_run.app.env.metadata["basic_unrun"]["author"] == "Chris"
20+
assert (
21+
sphinx_run.app.env.metadata["basic_unrun"]["kernelspec"]
22+
== '{"display_name": "Python 3", "language": "python", "name": "python3"}'
23+
)
1324
file_regression.check(sphinx_run.get_nb(), check_fn=check_nbs, extension=".ipynb")
1425
file_regression.check(sphinx_run.get_doctree().pformat(), extension=".xml")

0 commit comments

Comments
 (0)