v1.0
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
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"))
|
||||
Reference in New Issue
Block a user