42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""publish_logs 表:init 幂等、写入与查询(全程隔离数据目录)。"""
|
||
from __future__ import annotations
|
||
|
||
import unittest
|
||
|
||
from _support import IsolatedDataRoot
|
||
|
||
|
||
class TestDbSmoke(unittest.TestCase):
|
||
def test_init_db_idempotent_and_crud_smoke(self) -> None:
|
||
with IsolatedDataRoot():
|
||
from db.connection import init_db
|
||
from db import publish_logs_repository as plr
|
||
|
||
init_db()
|
||
init_db()
|
||
|
||
new_id = plr.save_publish_log(
|
||
account_id="acc-1",
|
||
article_id=42,
|
||
article_title="t",
|
||
status="ok",
|
||
error_msg=None,
|
||
)
|
||
self.assertIsInstance(new_id, int)
|
||
self.assertGreater(new_id, 0)
|
||
|
||
rows = plr.list_publish_logs(limit=10)
|
||
self.assertTrue(any(r[0] == new_id for r in rows))
|
||
|
||
row = plr.get_publish_log_by_id(new_id)
|
||
self.assertIsNotNone(row)
|
||
self.assertEqual(int(row[0]), new_id)
|
||
|
||
missing = plr.get_publish_log_by_id(999_999)
|
||
self.assertIsNone(missing)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
unittest.main()
|