mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-06-28 05:26:13 +02:00
Add tags to json and xml exporters (#975)
* tag array for json * add tags to entry in xml * xml test * json test * black * removed called
This commit is contained in:
parent
c1b93cf81b
commit
be38cfa87a
4 changed files with 30 additions and 4 deletions
|
@ -9,6 +9,8 @@ Feature: Exporting a Journal
|
|||
And "tags" in the json output should contain "@idea"
|
||||
And "tags" in the json output should contain "@journal"
|
||||
And "tags" in the json output should contain "@dan"
|
||||
And entry 1 should have an array "tags" with 2 elements
|
||||
And entry 2 should have an array "tags" with 2 elements
|
||||
|
||||
Scenario: Exporting using filters should only export parts of the journal
|
||||
Given we use the config "tags.yaml"
|
||||
|
@ -89,6 +91,7 @@ Feature: Exporting a Journal
|
|||
Then the output should be a valid XML string
|
||||
And "entries" node in the xml output should have 2 elements
|
||||
And "tags" in the xml output should contain ["@idea", "@journal", "@dan"]
|
||||
And there should be 7 "tag" elements
|
||||
|
||||
Scenario: Exporting tags
|
||||
Given we use the config "tags.yaml"
|
||||
|
|
|
@ -65,6 +65,16 @@ def check_json_output_path(context, path, value=None):
|
|||
assert struct is not None
|
||||
|
||||
|
||||
@then(
|
||||
'entry {entry_number:d} should have an array "{name}" with {items_number:d} elements'
|
||||
)
|
||||
def entry_array_count(context, entry_number, name, items_number):
|
||||
# note that entry_number is 1-indexed.
|
||||
out = context.stdout_capture.getvalue()
|
||||
out_json = json.loads(out)
|
||||
assert len(out_json["entries"][entry_number - 1][name]) == items_number
|
||||
|
||||
|
||||
@then("the output should be a valid XML string")
|
||||
def assert_valid_xml_string(context):
|
||||
output = context.stdout_capture.getvalue()
|
||||
|
@ -72,18 +82,25 @@ def assert_valid_xml_string(context):
|
|||
assert xml_tree, output
|
||||
|
||||
|
||||
@then('"entries" node in the xml output should have {number:d} elements')
|
||||
def assert_xml_output_entries_count(context, number):
|
||||
@then('"{item}" node in the xml output should have {number:d} elements')
|
||||
def assert_xml_output_entries_count(context, item, number):
|
||||
output = context.stdout_capture.getvalue()
|
||||
xml_tree = ElementTree.fromstring(output)
|
||||
|
||||
xml_tags = (node.tag for node in xml_tree)
|
||||
assert "entries" in xml_tags, str(list(xml_tags))
|
||||
assert item in xml_tags, str(list(xml_tags))
|
||||
|
||||
actual_entry_count = len(xml_tree.find("entries"))
|
||||
actual_entry_count = len(xml_tree.find(item))
|
||||
assert actual_entry_count == number, actual_entry_count
|
||||
|
||||
|
||||
@then('there should be {number:d} "{item}" elements')
|
||||
def count_elements(context, number, item):
|
||||
output = context.stdout_capture.getvalue()
|
||||
xml_tree = ElementTree.fromstring(output)
|
||||
assert len(xml_tree.findall(".//" + item)) == number
|
||||
|
||||
|
||||
@then('"tags" in the xml output should contain {expected_tags_json_list}')
|
||||
def assert_xml_output_tags(context, expected_tags_json_list):
|
||||
output = context.stdout_capture.getvalue()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue