Files
yuming cf40343c51
部署到群晖 / deploy (push) Failing after 10m45s
初始化 telegram-downloader 并接入群晖 CI/CD
2026-04-22 21:29:03 +08:00

72 lines
2.5 KiB
Python

"""test app"""
import os
import sys
import unittest
from unittest import mock
import module.app
from module.app import Application, ChatDownloadConfig, DownloadStatus
sys.path.append("..") # Adds higher directory to python modules path.
class AppTestCase(unittest.TestCase):
@classmethod
def tearDownClass(cls):
config_test = os.path.join(os.path.abspath("."), "config_test.yaml")
data_test = os.path.join(os.path.abspath("."), "data_test.yaml")
if os.path.exists(config_test):
os.remove(config_test)
if os.path.exists(data_test):
os.remove(data_test)
def test_app(self):
app = Application("", "")
self.assertEqual(app.save_path, os.path.join(os.path.abspath("."), "downloads"))
self.assertEqual(app.proxy, {})
self.assertEqual(app.restart_program, False)
app.chat_download_config[123] = ChatDownloadConfig()
app.chat_download_config[123].last_read_message_id = 13
app.chat_download_config[123].node.download_status[
6
] = DownloadStatus.Downloading
app.chat_download_config[123].ids_to_retry.append(7)
# download success
app.chat_download_config[123].node.download_status[
8
] = DownloadStatus.SuccessDownload
app.chat_download_config[123].finish_task += 1
# download success
app.chat_download_config[123].node.download_status[
10
] = DownloadStatus.SuccessDownload
app.chat_download_config[123].finish_task += 1
# not exist message
app.chat_download_config[123].node.download_status[
13
] = DownloadStatus.SuccessDownload
app.config["chat"] = [{"chat_id": 123, "last_read_message_id": 5}]
app.update_config(False)
self.assertEqual(
app.chat_download_config[123].last_read_message_id + 1,
app.config["chat"][0]["last_read_message_id"],
)
self.assertEqual(
[6, 7],
app.app_data["chat"][0]["ids_to_retry"],
)
@mock.patch("__main__.__builtins__.open", new_callable=mock.mock_open)
@mock.patch("module.app.yaml", autospec=True)
def test_update_config(self, mock_yaml, mock_open):
app = Application("", "")
app.config_file = "config_test.yaml"
app.app_data_file = "data_test.yaml"
app.config["chat"] = [{"chat_id": 123, "last_read_message_id": 0}]
app.update_config()
mock_open.assert_called_with("data_test.yaml", "w", encoding="utf-8")