[DayOne] [Tests] test that extended DayOne metadata is added to new entries

This commit is contained in:
MinchinWeb 2020-05-25 22:32:24 -06:00
parent fe819dcbf4
commit 108cadcf0e
2 changed files with 29 additions and 5 deletions

View file

@ -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"

View file

@ -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]
if value is not None:
assert struct == value, struct 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")