From 837cdd633a09c06db9b5a9ea6c1ad2c6554a3cd0 Mon Sep 17 00:00:00 2001 From: Marc Wouts Date: Sun, 24 Mar 2019 01:52:30 +0100 Subject: [PATCH] Test round trip for code cell metadata #66 #111 --- tests/test_cell_metadata.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/test_cell_metadata.py b/tests/test_cell_metadata.py index 1d5b3910e..55dcc96df 100644 --- a/tests/test_cell_metadata.py +++ b/tests/test_cell_metadata.py @@ -1,7 +1,9 @@ import pytest +from testfixtures import compare from jupytext.cell_metadata import rmd_options_to_metadata, metadata_to_rmd_options, parse_rmd_options from jupytext.cell_metadata import _IGNORE_CELL_METADATA, RMarkdownOptionParsingError, try_eval_metadata -from jupytext.cell_metadata import json_options_to_metadata, metadata_to_json_options, md_options_to_metadata +from jupytext.cell_metadata import json_options_to_metadata, metadata_to_json_options +from jupytext.cell_metadata import md_options_to_metadata, metadata_to_md_options from jupytext.metadata_filter import filter_metadata from .utils import skip_if_dict_is_not_ordered @@ -88,6 +90,19 @@ def test_parse_md_options(): assert md_options_to_metadata('not_a_language') == (None, {'not_a_language': None}) +def test_round_trip_md_options(metadata={'.class': None, + 'long-and-str$ange.name': None, + 'string': "Hello", + 'number': .21, + 'array': ['First', 'Second', 3, "string with single ' in it'"], + 'dict': {"a": 5, "b": [1.2, "four"]}, + '.another_class': None}): + options = metadata_to_md_options(metadata) + language, metadata2 = md_options_to_metadata('python ' + options) + assert language == 'python' + compare(metadata, metadata2) + + def test_write_parse_json(): metadata = {"tags": ["parameters"]} options = metadata_to_json_options(metadata)