deploy: auto commit repo-root changes 2026-06-13 00:33:38
This commit is contained in:
@@ -625,15 +625,10 @@ class AiCommentRepository:
|
|||||||
for index in range(1, target_count + 1):
|
for index in range(1, target_count + 1):
|
||||||
persona = self._persona_for_index(index)
|
persona = self._persona_for_index(index)
|
||||||
account = f"{BOT_ACCOUNT_PREFIX}{index:04d}"
|
account = f"{BOT_ACCOUNT_PREFIX}{index:04d}"
|
||||||
nickname = self._build_bot_nickname(index)
|
|
||||||
row = indexed.get(index)
|
row = indexed.get(index)
|
||||||
if row:
|
if row:
|
||||||
if row["nickname"] != nickname:
|
|
||||||
cursor.execute(
|
|
||||||
f"UPDATE `{self.prefix}user` SET nickname=%s, update_time=%s WHERE id=%s",
|
|
||||||
(nickname, now, row["id"]),
|
|
||||||
)
|
|
||||||
continue
|
continue
|
||||||
|
nickname = self._build_bot_nickname(index)
|
||||||
password = self._create_password(self._random_password(), salt)
|
password = self._create_password(self._random_password(), salt)
|
||||||
sn = self._create_user_sn(cursor)
|
sn = self._create_user_sn(cursor)
|
||||||
cursor.execute(
|
cursor.execute(
|
||||||
@@ -651,7 +646,8 @@ class AiCommentRepository:
|
|||||||
for row in rows:
|
for row in rows:
|
||||||
index = self._parse_account_index(row["account"])
|
index = self._parse_account_index(row["account"])
|
||||||
persona = self._persona_for_index(index)
|
persona = self._persona_for_index(index)
|
||||||
users.append(VirtualUser(int(row["id"]), row["account"], self._build_bot_nickname(index), persona["key"]))
|
nickname = str(row.get("nickname") or "").strip() or self._build_bot_nickname(index)
|
||||||
|
users.append(VirtualUser(int(row["id"]), row["account"], nickname, persona["key"]))
|
||||||
self._virtual_users_cache = list(users)
|
self._virtual_users_cache = list(users)
|
||||||
return users[:target_count]
|
return users[:target_count]
|
||||||
|
|
||||||
|
|||||||
@@ -80,6 +80,32 @@ class FakeClient:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class RecordingCursor:
|
||||||
|
def __init__(self):
|
||||||
|
self.executed = []
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __exit__(self, exc_type, exc, tb):
|
||||||
|
return False
|
||||||
|
|
||||||
|
def execute(self, sql, params=None):
|
||||||
|
self.executed.append((sql, params))
|
||||||
|
|
||||||
|
|
||||||
|
class RecordingConnection:
|
||||||
|
def __init__(self):
|
||||||
|
self.cursor_obj = RecordingCursor()
|
||||||
|
self.commits = 0
|
||||||
|
|
||||||
|
def cursor(self):
|
||||||
|
return self.cursor_obj
|
||||||
|
|
||||||
|
def commit(self):
|
||||||
|
self.commits += 1
|
||||||
|
|
||||||
|
|
||||||
class AiCommentDispatchTest(unittest.TestCase):
|
class AiCommentDispatchTest(unittest.TestCase):
|
||||||
def test_merge_candidates_merges_selection_sources_by_target(self):
|
def test_merge_candidates_merges_selection_sources_by_target(self):
|
||||||
merged = merge_candidates(
|
merged = merge_candidates(
|
||||||
@@ -217,6 +243,29 @@ class AiCommentDispatchTest(unittest.TestCase):
|
|||||||
self.assertNotIn("·", nickname)
|
self.assertNotIn("·", nickname)
|
||||||
self.assertGreaterEqual(len(nickname), 3)
|
self.assertGreaterEqual(len(nickname), 3)
|
||||||
|
|
||||||
|
def test_existing_virtual_user_nickname_comes_from_user_table(self):
|
||||||
|
repo = AiCommentRepository.__new__(AiCommentRepository)
|
||||||
|
repo.prefix = "la_"
|
||||||
|
repo.conn = RecordingConnection()
|
||||||
|
repo._virtual_users_cache = None
|
||||||
|
repo._settings_cache = None
|
||||||
|
existing_rows = [
|
||||||
|
{
|
||||||
|
"id": 83,
|
||||||
|
"account": "ai_comment_0001",
|
||||||
|
"nickname": "赛点阿泽已手动改名",
|
||||||
|
"avatar": "/avatar.png",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
repo._load_virtual_users = lambda limit=None: list(existing_rows)
|
||||||
|
repo._load_site_config = lambda group, name: ""
|
||||||
|
|
||||||
|
users = repo.ensure_virtual_users(1)
|
||||||
|
|
||||||
|
self.assertEqual(users[0].nickname, "赛点阿泽已手动改名")
|
||||||
|
executed_sql = "\n".join(sql for sql, _ in repo.conn.cursor_obj.executed)
|
||||||
|
self.assertNotIn("UPDATE `la_user` SET nickname", executed_sql)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user