aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/test_output.py31
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)