idx-cli/tests/test_export_simple.py

49 lines
1.4 KiB
Python

import json
import sqlite3
import tempfile
import unittest
from pathlib import Path
from scripts.export_simple import export_csv, export_json, export_xlsx
class ExportSimpleTests(unittest.TestCase):
def setUp(self):
self.tmp = tempfile.TemporaryDirectory()
self.base = Path(self.tmp.name)
self.db = self.base / "test.db"
conn = sqlite3.connect(self.db)
conn.execute("CREATE TABLE stocks (id TEXT, ticker TEXT)")
conn.execute("INSERT INTO stocks VALUES ('1','BBCA')")
conn.commit()
conn.close()
def tearDown(self):
self.tmp.cleanup()
def test_export_json(self):
conn = sqlite3.connect(self.db)
out = self.base / "json"
export_json(conn, out, ["stocks"])
conn.close()
data = json.loads((out / "stocks.json").read_text())
self.assertEqual(data[0]["ticker"], "BBCA")
def test_export_csv(self):
conn = sqlite3.connect(self.db)
out = self.base / "csv"
export_csv(conn, out, ["stocks"])
conn.close()
text = (out / "stocks.csv").read_text()
self.assertIn("BBCA", text)
def test_export_xlsx(self):
conn = sqlite3.connect(self.db)
out = self.base / "out.xlsx"
export_xlsx(conn, out, ["stocks"])
conn.close()
self.assertTrue(out.exists())
if __name__ == "__main__":
unittest.main()