65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
import unittest
|
|
from unittest.mock import MagicMock
|
|
from meshchatx.src.backend.database.messages import MessageDAO
|
|
from meshchatx.src.backend.database.announces import AnnounceDAO
|
|
from meshchatx.src.backend.database.misc import MiscDAO
|
|
|
|
|
|
class TestMaintenance(unittest.TestCase):
|
|
def setUp(self):
|
|
self.provider = MagicMock()
|
|
self.messages_dao = MessageDAO(self.provider)
|
|
self.announces_dao = AnnounceDAO(self.provider)
|
|
self.misc_dao = MiscDAO(self.provider)
|
|
|
|
def test_delete_all_lxmf_messages(self):
|
|
self.messages_dao.delete_all_lxmf_messages()
|
|
self.assertEqual(self.provider.execute.call_count, 2)
|
|
calls = self.provider.execute.call_args_list
|
|
self.assertIn("DELETE FROM lxmf_messages", calls[0][0][0])
|
|
self.assertIn("DELETE FROM lxmf_conversation_read_state", calls[1][0][0])
|
|
|
|
def test_delete_all_announces(self):
|
|
# Test without aspect
|
|
self.announces_dao.delete_all_announces()
|
|
self.provider.execute.assert_called_with("DELETE FROM announces")
|
|
|
|
# Test with aspect
|
|
self.announces_dao.delete_all_announces(aspect="test_aspect")
|
|
self.provider.execute.assert_called_with(
|
|
"DELETE FROM announces WHERE aspect = ?", ("test_aspect",)
|
|
)
|
|
|
|
def test_delete_all_favourites(self):
|
|
# Test without aspect
|
|
self.announces_dao.delete_all_favourites()
|
|
self.provider.execute.assert_called_with("DELETE FROM favourite_destinations")
|
|
|
|
# Test with aspect
|
|
self.announces_dao.delete_all_favourites(aspect="test_aspect")
|
|
self.provider.execute.assert_called_with(
|
|
"DELETE FROM favourite_destinations WHERE aspect = ?", ("test_aspect",)
|
|
)
|
|
|
|
def test_delete_archived_pages(self):
|
|
self.misc_dao.delete_archived_pages()
|
|
self.provider.execute.assert_called_with("DELETE FROM archived_pages")
|
|
|
|
def test_upsert_lxmf_message(self):
|
|
msg_data = {
|
|
"hash": "test_hash",
|
|
"source_hash": "source",
|
|
"destination_hash": "dest",
|
|
"peer_hash": "peer",
|
|
"content": "hello",
|
|
}
|
|
self.messages_dao.upsert_lxmf_message(msg_data)
|
|
self.provider.execute.assert_called()
|
|
args, _ = self.provider.execute.call_args
|
|
self.assertIn("INSERT INTO lxmf_messages", args[0])
|
|
self.assertIn("ON CONFLICT(hash) DO UPDATE SET", args[0])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|