56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from datetime import datetime
|
|
from freezegun import freeze_time
|
|
|
|
from odoo.addons.whatsapp.tests.common import WhatsAppCommon
|
|
from odoo.tests import tagged
|
|
|
|
|
|
@tagged('wa_message')
|
|
class WhatsAppMessage(WhatsAppCommon):
|
|
|
|
@freeze_time('2023-08-20')
|
|
def test_gc_whatsapp_messages(self):
|
|
messages = self.env['whatsapp.message'].create([{
|
|
'body': 'Old Sent Message',
|
|
'create_date': datetime(2023, 8, 1),
|
|
'state': 'sent',
|
|
}, {
|
|
'body': 'Old Received Message',
|
|
'create_date': datetime(2023, 6, 2),
|
|
'state': 'received',
|
|
}, {
|
|
'body': 'Old Failed Message',
|
|
'create_date': datetime(2023, 5, 15),
|
|
'state': 'error',
|
|
}, {
|
|
'body': 'Old Queued Message',
|
|
'create_date': datetime(2023, 4, 7),
|
|
'state': 'outgoing',
|
|
}, {
|
|
'body': 'Recent Sent Message',
|
|
'create_date': datetime(2023, 8, 7),
|
|
'state': 'sent',
|
|
}, {
|
|
'body': 'Recent Received Message',
|
|
'create_date': datetime(2023, 8, 12),
|
|
'state': 'received',
|
|
}, {
|
|
'body': 'Recent Failed Message',
|
|
'create_date': datetime(2023, 8, 19),
|
|
'state': 'error',
|
|
}])
|
|
[_old_sent_message, _old_received_message, old_failed_message, old_queued_message,
|
|
recent_sent_message, recent_received_message, recent_failed_message] = messages
|
|
|
|
all_messages = self.env['whatsapp.message'].search([('id', 'in', messages.ids)])
|
|
self.assertEqual(set(all_messages.ids), set(messages.ids))
|
|
self.env['whatsapp.message']._gc_whatsapp_messages()
|
|
all_messages = self.env['whatsapp.message'].search([('id', 'in', messages.ids)])
|
|
self.assertEqual(
|
|
set(all_messages.ids),
|
|
set((old_failed_message + old_queued_message + recent_sent_message +
|
|
recent_received_message + recent_failed_message).ids)
|
|
)
|