fmartingr
/
jeeves
Archived
1
0
Fork 0
This repository has been archived on 2021-02-14. You can view files and clone it, but cannot push or open issues or pull requests.
jeeves/jeeves/core/tests/test_parsers.py

81 lines
1.9 KiB
Python

# pylint: disable=no-member
import os
import json
import tempfile
import toml
from jeeves.core.objects import Flow, BaseObject
from jeeves.core.parsers import FlowParser
from .factories import FlowFactory
EXPORTED_FLOW = {
"name": "Test",
"tasks": [
{
"type": "jeeves.core.actions.stub:StubSuccessfulAction",
"name": "Test Action",
"parameters": {},
}
],
}
def test_parser_object_to_dict_ok():
obj: Flow = FlowFactory()
result = FlowParser.to_dict(obj)
assert set(obj.fields).issubset(set(result))
def test_parser_dict_to_object_ok():
obj = FlowParser.from_dict(EXPORTED_FLOW)
assert isinstance(obj, Flow)
########
# JSON #
########
def test_parser_json_to_object_ok():
obj = FlowParser.from_json(json.dumps(EXPORTED_FLOW))
assert isinstance(obj, BaseObject)
def test_parser_json_file_to_object_ok():
export_file = tempfile.NamedTemporaryFile(delete=False, mode="w")
with export_file as handler:
handler.write(json.dumps(EXPORTED_FLOW))
obj = FlowParser.from_json_file(export_file.name)
assert isinstance(obj, BaseObject)
os.unlink(export_file.name)
def test_parser_obj_to_json_ok():
obj: Flow = FlowFactory()
result = FlowParser.to_json(obj)
assert set(obj.fields).issubset(set(json.loads(result)))
########
# TOML #
########
def test_parser_toml_to_object_ok():
obj = FlowParser.from_toml(toml.dumps(EXPORTED_FLOW))
assert isinstance(obj, BaseObject)
def test_parser_toml_file_to_object_ok():
export_file = tempfile.NamedTemporaryFile(delete=False, mode="w")
with export_file as handler:
handler.write(toml.dumps(EXPORTED_FLOW))
obj = FlowParser.from_toml_file(export_file.name)
assert isinstance(obj, BaseObject)
os.unlink(export_file.name)
def test_parser_obj_to_toml_ok():
obj: Flow = FlowFactory()
result = FlowParser.to_toml(obj)
assert set(obj.fields).issubset(set(toml.loads(result)))