Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 0 additions & 92 deletions tests/services/test_member_store_lookup_reload.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,95 +139,3 @@ def fake_lookup_with_reload(platform, account_id):

assert member_store.get_member_role("Discord", "discord-1") == expected_role
assert calls == [("Discord", "discord-1")]


@pytest.mark.parametrize(
(
"member",
"subscribe_str",
"expected_result",
"expected_update",
),
[
(
None,
"discord",
{"success": False, "message": "找不到您的社員資料,請先透過 Email 綁定身分。"},
None,
),
(
_valid_member(valid_date=PAST_VALID_DATE),
"discord",
{"success": False, "message": "您的社員資格已過期,無法設定訂閱。"},
None,
),
(
_valid_member(subscribe="discord"),
"",
{"success": True, "message": "已取消所有通知訂閱。"},
("alice@example.com", "subscribe", ""),
),
(
_valid_member(subscribe="discord"),
" ",
{"success": True, "message": "已取消所有通知訂閱。"},
("alice@example.com", "subscribe", ""),
),
(
_valid_member(),
",,, line ,,",
{"success": False, "message": "不支援的平台: line。目前僅支援: discord"},
None,
),
(
_valid_member(discord_acc_id=""),
"discord",
{
"success": False,
"message": "您尚未綁定 discord 帳號,請先綁定後再訂閱該平台的通知。",
},
None,
),
(
_valid_member(discord_acc_id="0"),
"discord",
{
"success": False,
"message": "您尚未綁定 discord 帳號,請先綁定後再訂閱該平台的通知。",
},
None,
),
(
_valid_member(discord_acc_id="discord-1"),
" Discord, discord ",
{"success": True, "message": "訂閱設定已更新!您將在以下平台收到每日課程通知:discord"},
("alice@example.com", "subscribe", "discord"),
),
],
)
def test_update_subscribe_handles_edge_cases_without_real_db_or_api(
monkeypatch,
member,
subscribe_str,
expected_result,
expected_update,
):
lookup_calls = []
update_calls = []

def fake_lookup_with_reload(platform, account_id):
lookup_calls.append((platform, account_id))
return member

def fake_update_member_field(email, field, value):
update_calls.append((email, field, value))
return {"success": True, "message": "更新成功"}

monkeypatch.setattr(member_store, "_lookup_member_with_reload", fake_lookup_with_reload)
monkeypatch.setattr(member_store, "_update_member_field", fake_update_member_field)

result = member_store.update_subscribe("Discord", "discord-1", subscribe_str)

assert result == expected_result
assert lookup_calls == [("Discord", "discord-1")]
assert update_calls == ([] if expected_update is None else [expected_update])
Loading