mirror of
https://github.com/zc-zhangchen/any-auto-register.git
synced 2026-05-17 11:16:47 +08:00
56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
import unittest
|
|
from unittest import mock
|
|
|
|
from core.base_mailbox import LuckMailMailbox, MailboxAccount
|
|
from core.luckmail.models import TokenMailItem, TokenMailList
|
|
|
|
|
|
class LuckMailMailboxTests(unittest.TestCase):
|
|
def _build_mailbox(self):
|
|
mailbox = LuckMailMailbox.__new__(LuckMailMailbox)
|
|
mailbox._client = mock.Mock()
|
|
mailbox._project_code = "openai"
|
|
mailbox._email_type = None
|
|
mailbox._domain = None
|
|
mailbox._order_no = None
|
|
mailbox._token = "tok_demo"
|
|
mailbox._email = "demo@example.com"
|
|
mailbox._log_fn = None
|
|
return mailbox
|
|
|
|
@mock.patch("time.sleep", return_value=None)
|
|
def test_wait_for_code_skips_excluded_purchase_code_and_keeps_polling_for_fresh_mail(self, _sleep):
|
|
mailbox = self._build_mailbox()
|
|
mailbox.get_current_ids = mock.Mock(return_value={"m1"})
|
|
mailbox._client.user.get_token_mails.side_effect = [
|
|
TokenMailList(
|
|
email_address="demo@example.com",
|
|
project="openai",
|
|
mails=[
|
|
TokenMailItem(message_id="m1", subject="Your OpenAI code is 111111"),
|
|
],
|
|
),
|
|
TokenMailList(
|
|
email_address="demo@example.com",
|
|
project="openai",
|
|
mails=[
|
|
TokenMailItem(message_id="m1", subject="Your OpenAI code is 111111"),
|
|
TokenMailItem(message_id="m2", subject="Your OpenAI code is 222222"),
|
|
],
|
|
),
|
|
]
|
|
|
|
code = mailbox.wait_for_code(
|
|
MailboxAccount(email="demo@example.com", account_id="tok_demo"),
|
|
timeout=5,
|
|
exclude_codes={"111111"},
|
|
)
|
|
|
|
self.assertEqual(code, "222222")
|
|
mailbox.get_current_ids.assert_called_once()
|
|
self.assertEqual(mailbox._client.user.get_token_mails.call_count, 2)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|