Files
odoo_source/addons/website_slides/tests/common.py
T
Thibault Delavallée 02f5b654c3 [FIX] website_slides: fix vote karma
Currently doing a like then dislike does not give a void karma total. Indeed
karma is removed / added only when the vote hits 1 or -1 but does not correctly
take into account the third (void) state. We also avoid adding karma when
upvoting / downvoting an already upvoted / downvoted slide. Interface does
not allow it but avoiding to add karma at model level is always a good idea.

Karma-related tests are improved a bit.

Commit linked to task ID 1958810 and PR #32057

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-25 12:39:32 +00:00

74 lines
2.5 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from contextlib import contextmanager
from functools import partial
from odoo.tests import common, new_test_user
slides_new_test_user = partial(new_test_user, context={'mail_create_nolog': True, 'mail_create_nosubscribe': True, 'mail_notrack': True, 'no_reset_password': True})
class SlidesCase(common.SavepointCase):
def setUp(self):
super(SlidesCase, self).setUp()
self.user_publisher = slides_new_test_user(
self.env, name='Paul Publisher', login='user_publisher', email='publisher@example.com',
groups='base.group_user,website.group_website_publisher'
)
self.user_emp = slides_new_test_user(
self.env, name='Eglantine Employee', login='user_emp', email='employee@example.com',
groups='base.group_user'
)
self.user_portal = slides_new_test_user(
self.env, name='Patrick Portal', login='user_portal', email='portal@example.com',
groups='base.group_portal'
)
self.user_public = slides_new_test_user(
self.env, name='Pauline Public', login='user_public', email='public@example.com',
groups='base.group_public'
)
self.customer = self.env['res.partner'].create({
'name': 'Caroline Customer',
'email': 'customer@example.com',
'customer': True,
})
self.channel = self.env['slide.channel'].sudo(self.user_publisher).create({
'name': 'Test Channel',
'channel_type': 'documentation',
'promote_strategy': 'most_voted',
'enroll': 'public',
'visibility': 'public',
'website_published': True,
'karma_gen_channel_finish': 100,
'karma_gen_slide_vote': 5,
'karma_gen_channel_rank': 10,
})
self.slide = self.env['slide.slide'].sudo(self.user_publisher).create({
'name': 'How To Cook Humans',
'channel_id': self.channel.id,
'slide_type': 'presentation',
'website_published': True,
'completion_time': 2.0,
})
@contextmanager
def sudo(self, user):
""" Quick sudo environment """
old_uid = self.uid
try:
self.uid = user.id
self.env = self.env(user=self.uid)
yield
finally:
# back
self.uid = old_uid
self.env = self.env(user=self.uid)