diff options
| author | Danilo M. <danix@danix.xyz> | 2026-06-30 10:58:02 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-06-30 10:58:02 +0200 |
| commit | 09dddee3ebbbbbb8ed6eac74370232e76e84d7bb (patch) | |
| tree | 869a37bce74d61b9ae557c8c9366bb70b8f85dc7 /tests | |
| parent | 092e05361a534a8f35d7b551afa77004e30cf201 (diff) | |
| download | firefly-cli-09dddee3ebbbbbb8ed6eac74370232e76e84d7bb.tar.gz firefly-cli-09dddee3ebbbbbb8ed6eac74370232e76e84d7bb.zip | |
feat: output emit and envelope unwrap
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/unit/test_output.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/unit/test_output.py b/tests/unit/test_output.py new file mode 100644 index 0000000..c71a424 --- /dev/null +++ b/tests/unit/test_output.py @@ -0,0 +1,31 @@ +import io, json, unittest +from contextlib import redirect_stdout +from firefly_cli.output import unwrap, emit + +class TestOutput(unittest.TestCase): + def test_unwrap_list_returns_clean_objects(self): + resp = {"data": [ + {"id": "1", "type": "accounts", "attributes": {"name": "Checking"}}, + {"id": "2", "type": "accounts", "attributes": {"name": "Savings"}}, + ]} + self.assertEqual(unwrap(resp), + [{"id": "1", "name": "Checking"}, {"id": "2", "name": "Savings"}]) + + def test_unwrap_single_object(self): + resp = {"data": {"id": "5", "type": "accounts", + "attributes": {"name": "Wallet"}}} + self.assertEqual(unwrap(resp), {"id": "5", "name": "Wallet"}) + + def test_emit_json_default(self): + buf = io.StringIO() + with redirect_stdout(buf): + emit([{"id": "1", "name": "x"}], human=False) + self.assertEqual(json.loads(buf.getvalue()), [{"id": "1", "name": "x"}]) + + def test_emit_human_table_contains_values(self): + buf = io.StringIO() + with redirect_stdout(buf): + emit([{"id": "1", "name": "Checking"}], human=True) + out = buf.getvalue() + self.assertIn("Checking", out) + self.assertIn("id", out) |
