84 lines
2.4 KiB
Python
84 lines
2.4 KiB
Python
import json
|
|
import os
|
|
import tempfile
|
|
from agent.output_writer import OutputWriter
|
|
|
|
|
|
def test_write_json_files():
|
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
writer = OutputWriter(tmpdir)
|
|
|
|
ai_result = {
|
|
"groups": {
|
|
"g1": {
|
|
"program": "TEST",
|
|
"records": [
|
|
{"input": {"R01": {"R01-FIELD": "A001"}}}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
written = writer.write("TESTPGM", ai_result, input_type="file")
|
|
|
|
assert len(written) == 1
|
|
json_path = written["g1/json"]
|
|
assert os.path.exists(json_path)
|
|
|
|
with open(json_path, 'r', encoding='utf-8') as f:
|
|
content = json.load(f)
|
|
assert content['program'] == 'TEST'
|
|
assert len(content['records']) == 1
|
|
|
|
|
|
def test_write_mixed_type():
|
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
writer = OutputWriter(tmpdir)
|
|
|
|
ai_result = {
|
|
"groups": {
|
|
"g1": {
|
|
"program": "MIXED",
|
|
"records": [{"input": {"R01": {"F1": "X"}}}],
|
|
"sql": "INSERT INTO T VALUES ('x');"
|
|
}
|
|
}
|
|
}
|
|
|
|
written = writer.write("MIXEDPGM", ai_result, input_type="mixed")
|
|
|
|
assert len(written) == 2
|
|
assert os.path.exists(written["g1/json"])
|
|
assert os.path.exists(written["g1/sql"])
|
|
|
|
|
|
def test_write_multiple_groups():
|
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
writer = OutputWriter(tmpdir)
|
|
|
|
ai_result = {
|
|
"groups": {
|
|
"g1": {"records": [{}]},
|
|
"g2": {"records": [{}]},
|
|
"g3": {"records": [{}]},
|
|
}
|
|
}
|
|
|
|
written = writer.write("MULTI", ai_result, input_type="file")
|
|
|
|
assert len(written) == 3
|
|
for g in ['g1', 'g2', 'g3']:
|
|
assert f'{g}/json' in written
|
|
assert os.path.exists(written[f'{g}/json'])
|
|
|
|
|
|
def test_directory_structure():
|
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
writer = OutputWriter(tmpdir)
|
|
ai_result = {"groups": {"g1": {"records": [{}]}}}
|
|
writer.write("MYPROG", ai_result, input_type="file")
|
|
|
|
expected_dir = os.path.join(tmpdir, "MYPROG", "g1")
|
|
assert os.path.isdir(expected_dir)
|
|
assert os.path.isfile(os.path.join(expected_dir, "MYPROG_g1.json"))
|