import sqlite3 import tempfile import unittest from pathlib import Path from db.init_db import ensure_database class EnsureDatabaseTests(unittest.TestCase): def test_creates_app_database_with_required_tables(self): with tempfile.TemporaryDirectory() as tmp_dir: base_dir = Path(tmp_dir) db_path = ensure_database(base_dir) self.assertEqual(db_path, base_dir / 'db' / 'database.db') self.assertTrue(db_path.exists()) conn = sqlite3.connect(db_path) try: cursor = conn.cursor() cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='user_info'") self.assertEqual(cursor.fetchone(), ('user_info',)) cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='file_records'") self.assertEqual(cursor.fetchone(), ('file_records',)) finally: conn.close() if __name__ == '__main__': unittest.main()