mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-21 05:28:31 +02:00
[DayOne] [Tests] test that extended DayOne metadata is added to new entries
This commit is contained in:
parent
fe819dcbf4
commit
108cadcf0e
2 changed files with 29 additions and 5 deletions
|
@ -63,3 +63,15 @@ Feature: Dayone specific implementation details.
|
||||||
Then we should get no error
|
Then we should get no error
|
||||||
and the output should be parsable as json
|
and the output should be parsable as json
|
||||||
and the json output should contain entries.0.uuid = "4BB1F46946AD439996C9B59DE7C4DDC1"
|
and the json output should contain entries.0.uuid = "4BB1F46946AD439996C9B59DE7C4DDC1"
|
||||||
|
|
||||||
|
Scenario: Writing into Dayone adds extended metadata
|
||||||
|
Given we use the config "dayone.yaml"
|
||||||
|
When we run "jrnl 01 may 1979: Being born hurts."
|
||||||
|
and we run "jrnl --export json"
|
||||||
|
Then "entries" in the json output should have 5 elements
|
||||||
|
and the json output should contain entries.0.creator.software_agent
|
||||||
|
and the json output should contain entries.0.creator.os_agent
|
||||||
|
and the json output should contain entries.0.creator.host_name
|
||||||
|
and the json output should contain entries.0.creator.generation_date
|
||||||
|
and the json output should contain entries.0.creator.device_agent
|
||||||
|
and "entries.0.creator.software_agent" in the json output should contain "jrnl"
|
||||||
|
|
|
@ -32,13 +32,21 @@ def check_output_field_not_key(context, field, key):
|
||||||
@then('"{field}" in the json output should contain "{key}"')
|
@then('"{field}" in the json output should contain "{key}"')
|
||||||
def check_output_field_key(context, field, key):
|
def check_output_field_key(context, field, key):
|
||||||
out = context.stdout_capture.getvalue()
|
out = context.stdout_capture.getvalue()
|
||||||
out_json = json.loads(out)
|
struct = json.loads(out)
|
||||||
assert field in out_json
|
|
||||||
assert key in out_json[field]
|
for node in field.split("."):
|
||||||
|
try:
|
||||||
|
struct = struct[int(node)]
|
||||||
|
except ValueError:
|
||||||
|
assert node in struct
|
||||||
|
struct = struct[node]
|
||||||
|
|
||||||
|
assert key in struct
|
||||||
|
|
||||||
|
|
||||||
|
@then("the json output should contain {path}")
|
||||||
@then('the json output should contain {path} = "{value}"')
|
@then('the json output should contain {path} = "{value}"')
|
||||||
def check_json_output_path(context, path, value):
|
def check_json_output_path(context, path, value=None):
|
||||||
""" E.g.
|
""" E.g.
|
||||||
the json output should contain entries.0.title = "hello"
|
the json output should contain entries.0.title = "hello"
|
||||||
"""
|
"""
|
||||||
|
@ -50,7 +58,11 @@ def check_json_output_path(context, path, value):
|
||||||
struct = struct[int(node)]
|
struct = struct[int(node)]
|
||||||
except ValueError:
|
except ValueError:
|
||||||
struct = struct[node]
|
struct = struct[node]
|
||||||
assert struct == value, struct
|
|
||||||
|
if value is not None:
|
||||||
|
assert struct == value, struct
|
||||||
|
else:
|
||||||
|
assert struct is not None
|
||||||
|
|
||||||
|
|
||||||
@then("the output should be a valid XML string")
|
@then("the output should be a valid XML string")
|
||||||
|
|
Loading…
Add table
Reference in a new issue