This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
"""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")
|
||||
Reference in New Issue
Block a user