mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-20 21:18:32 +02:00
Extract export_steps module
This commit is contained in:
parent
2920f7f668
commit
e24beeffd0
2 changed files with 51 additions and 48 deletions
|
@ -3,7 +3,6 @@ from unittest.mock import patch
|
||||||
from behave import given, when, then
|
from behave import given, when, then
|
||||||
from jrnl import cli, install, Journal, util, plugins
|
from jrnl import cli, install, Journal, util, plugins
|
||||||
from jrnl import __version__
|
from jrnl import __version__
|
||||||
from dateutil import parser as date_parser
|
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -185,53 +184,6 @@ def no_error(context):
|
||||||
assert context.exit_status == 0, context.exit_status
|
assert context.exit_status == 0, context.exit_status
|
||||||
|
|
||||||
|
|
||||||
@then("the output should be parsable as json")
|
|
||||||
def check_output_json(context):
|
|
||||||
out = context.stdout_capture.getvalue()
|
|
||||||
assert json.loads(out), out
|
|
||||||
|
|
||||||
|
|
||||||
@then('"{field}" in the json output should have {number:d} elements')
|
|
||||||
@then('"{field}" in the json output should have 1 element')
|
|
||||||
def check_output_field(context, field, number=1):
|
|
||||||
out = context.stdout_capture.getvalue()
|
|
||||||
out_json = json.loads(out)
|
|
||||||
assert field in out_json, [field, out_json]
|
|
||||||
assert len(out_json[field]) == number, len(out_json[field])
|
|
||||||
|
|
||||||
|
|
||||||
@then('"{field}" in the json output should not contain "{key}"')
|
|
||||||
def check_output_field_not_key(context, field, key):
|
|
||||||
out = context.stdout_capture.getvalue()
|
|
||||||
out_json = json.loads(out)
|
|
||||||
assert field in out_json
|
|
||||||
assert key not in out_json[field]
|
|
||||||
|
|
||||||
|
|
||||||
@then('"{field}" in the json output should contain "{key}"')
|
|
||||||
def check_output_field_key(context, field, key):
|
|
||||||
out = context.stdout_capture.getvalue()
|
|
||||||
out_json = json.loads(out)
|
|
||||||
assert field in out_json
|
|
||||||
assert key in out_json[field]
|
|
||||||
|
|
||||||
|
|
||||||
@then('the json output should contain {path} = "{value}"')
|
|
||||||
def check_json_output_path(context, path, value):
|
|
||||||
""" E.g.
|
|
||||||
the json output should contain entries.0.title = "hello"
|
|
||||||
"""
|
|
||||||
out = context.stdout_capture.getvalue()
|
|
||||||
struct = json.loads(out)
|
|
||||||
|
|
||||||
for node in path.split("."):
|
|
||||||
try:
|
|
||||||
struct = struct[int(node)]
|
|
||||||
except ValueError:
|
|
||||||
struct = struct[node]
|
|
||||||
assert struct == value, struct
|
|
||||||
|
|
||||||
|
|
||||||
@then("the output should be")
|
@then("the output should be")
|
||||||
@then('the output should be "{text}"')
|
@then('the output should be "{text}"')
|
||||||
def check_output(context, text=None):
|
def check_output(context, text=None):
|
||||||
|
|
51
features/steps/export_steps.py
Normal file
51
features/steps/export_steps.py
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
import json
|
||||||
|
|
||||||
|
from behave import then
|
||||||
|
|
||||||
|
|
||||||
|
@then("the output should be parsable as json")
|
||||||
|
def check_output_json(context):
|
||||||
|
out = context.stdout_capture.getvalue()
|
||||||
|
assert json.loads(out), out
|
||||||
|
|
||||||
|
|
||||||
|
@then('"{field}" in the json output should have {number:d} elements')
|
||||||
|
@then('"{field}" in the json output should have 1 element')
|
||||||
|
def check_output_field(context, field, number=1):
|
||||||
|
out = context.stdout_capture.getvalue()
|
||||||
|
out_json = json.loads(out)
|
||||||
|
assert field in out_json, [field, out_json]
|
||||||
|
assert len(out_json[field]) == number, len(out_json[field])
|
||||||
|
|
||||||
|
|
||||||
|
@then('"{field}" in the json output should not contain "{key}"')
|
||||||
|
def check_output_field_not_key(context, field, key):
|
||||||
|
out = context.stdout_capture.getvalue()
|
||||||
|
out_json = json.loads(out)
|
||||||
|
assert field in out_json
|
||||||
|
assert key not in out_json[field]
|
||||||
|
|
||||||
|
|
||||||
|
@then('"{field}" in the json output should contain "{key}"')
|
||||||
|
def check_output_field_key(context, field, key):
|
||||||
|
out = context.stdout_capture.getvalue()
|
||||||
|
out_json = json.loads(out)
|
||||||
|
assert field in out_json
|
||||||
|
assert key in out_json[field]
|
||||||
|
|
||||||
|
|
||||||
|
@then('the json output should contain {path} = "{value}"')
|
||||||
|
def check_json_output_path(context, path, value):
|
||||||
|
""" E.g.
|
||||||
|
the json output should contain entries.0.title = "hello"
|
||||||
|
"""
|
||||||
|
out = context.stdout_capture.getvalue()
|
||||||
|
struct = json.loads(out)
|
||||||
|
|
||||||
|
for node in path.split("."):
|
||||||
|
try:
|
||||||
|
struct = struct[int(node)]
|
||||||
|
except ValueError:
|
||||||
|
struct = struct[node]
|
||||||
|
assert struct == value, struct
|
||||||
|
|
Loading…
Add table
Reference in a new issue