forked from Mapan/odoo17e
74 lines
2.6 KiB
Python
74 lines
2.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.mail.tests.common import mail_new_test_user
|
|
from odoo.addons.social.tests.tools import mock_void_external_calls
|
|
from odoo.tests import common
|
|
|
|
|
|
class SocialCase(common.TransactionCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super(SocialCase, cls).setUpClass()
|
|
|
|
with mock_void_external_calls():
|
|
cls.social_media = cls._get_social_media()
|
|
cls.social_account = cls._get_social_account()
|
|
|
|
attachments = [{
|
|
'name': 'first.png',
|
|
'datas': 'ABCDEFG='
|
|
}, {
|
|
'name': 'second.png',
|
|
'datas': 'GFEDCBA='
|
|
}]
|
|
|
|
cls.social_accounts = cls._get_post_social_accounts()
|
|
|
|
cls.social_post = cls.env['social.post'].create({
|
|
'message': 'A message',
|
|
'image_ids': [(0, 0, attachment) for attachment in attachments],
|
|
'post_method': 'now',
|
|
'account_ids': [(4, account.id) for account in cls.social_accounts]
|
|
})
|
|
|
|
cls.social_manager = mail_new_test_user(
|
|
cls.env, name='Gustave Doré', login='social_manager', email='social.manager@example.com',
|
|
groups='social.group_social_manager,base.group_user'
|
|
)
|
|
|
|
cls.social_user = mail_new_test_user(
|
|
cls.env, name='Lukas Peeters', login='social_user', email='social.user@example.com',
|
|
groups='social.group_social_user,base.group_user'
|
|
)
|
|
|
|
cls.user_emp = mail_new_test_user(
|
|
cls.env, name='Eglantine Employee', login='user_emp', email='employee@example.com',
|
|
groups='base.group_user', password='user_emp'
|
|
)
|
|
|
|
@classmethod
|
|
def _get_social_media(cls):
|
|
return None
|
|
|
|
@classmethod
|
|
def _get_social_account(cls):
|
|
return cls.env['social.account'].create({
|
|
'media_id': cls._get_social_media().id,
|
|
'name': 'Social Account 1'
|
|
})
|
|
|
|
@classmethod
|
|
def _get_post_social_accounts(cls):
|
|
return cls.social_account | cls.env['social.account'].create({
|
|
'media_id': cls._get_social_media().id,
|
|
'name': 'Social Account 2'
|
|
})
|
|
|
|
def _checkPostedStatus(self, success):
|
|
live_posts = self.env['social.live.post'].search([('post_id', '=', self.social_post.id)])
|
|
|
|
self.assertEqual(len(live_posts), 2)
|
|
self.assertTrue(all(live_post.state == 'posted' if success else 'failed' for live_post in live_posts))
|
|
self.assertEqual(self.social_post.state, 'posted')
|