Files
odoo_source/addons/website_slides/tests/common.py
T
Martin Trigaux a14fd21c60 [FIX] website_slides: completly leave a channel
When leaving a channel, remove the earned karma in addition of the
slides.
This way, the user goes back in the same state as before completing
the course.
Add a message to clarify to the user the impact of leaving a course.
Add a test to answer questions

opw-2199066

closes odoo/odoo#47166

X-original-commit: a5e66d681ccd760c0af7bd0b179b5e42c76577ba
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-03-09 09:10:29 +00:00

101 lines
3.8 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests import common
from odoo.addons.mail.tests.common import mail_new_test_user
class SlidesCase(common.SavepointCase):
@classmethod
def setUpClass(cls):
super(SlidesCase, cls).setUpClass()
cls.user_officer = mail_new_test_user(
cls.env, name='Ophélie Officer', login='user_officer', email='officer@example.com',
groups='base.group_user,website_slides.group_website_slides_officer'
)
cls.user_manager = mail_new_test_user(
cls.env, name='Manuel Manager', login='user_manager', email='manager@example.com',
groups='base.group_user,website_slides.group_website_slides_manager'
)
cls.user_emp = mail_new_test_user(
cls.env, name='Eglantine Employee', login='user_emp', email='employee@example.com',
groups='base.group_user'
)
cls.user_portal = mail_new_test_user(
cls.env, name='Patrick Portal', login='user_portal', email='portal@example.com',
groups='base.group_portal'
)
cls.user_public = mail_new_test_user(
cls.env, name='Pauline Public', login='user_public', email='public@example.com',
groups='base.group_public'
)
cls.customer = cls.env['res.partner'].create({
'name': 'Caroline Customer',
'email': 'customer@example.com',
})
cls.channel = cls.env['slide.channel'].with_user(cls.user_officer).create({
'name': 'Test Channel',
'channel_type': 'documentation',
'promote_strategy': 'most_voted',
'enroll': 'public',
'visibility': 'public',
'is_published': True,
'karma_gen_channel_finish': 100,
'karma_gen_slide_vote': 5,
'karma_gen_channel_rank': 10,
})
cls.slide = cls.env['slide.slide'].with_user(cls.user_officer).create({
'name': 'How To Cook Humans',
'channel_id': cls.channel.id,
'slide_type': 'presentation',
'is_published': True,
'completion_time': 2.0,
'sequence': 1,
})
cls.category = cls.env['slide.slide'].with_user(cls.user_officer).create({
'name': 'Cooking Tips for Humans',
'channel_id': cls.channel.id,
'is_category': True,
'is_published': True,
'sequence': 2,
})
cls.slide_2 = cls.env['slide.slide'].with_user(cls.user_officer).create({
'name': 'How To Cook For Humans',
'channel_id': cls.channel.id,
'slide_type': 'presentation',
'is_published': True,
'completion_time': 3.0,
'sequence': 3,
})
cls.slide_3 = cls.env['slide.slide'].with_user(cls.user_officer).create({
'name': 'How To Cook Humans For Humans',
'channel_id': cls.channel.id,
'slide_type': 'document',
'is_published': True,
'completion_time': 1.5,
'sequence': 4,
'quiz_first_attempt_reward': 42,
})
cls.question_1 = cls.env['slide.question'].with_user(cls.user_officer).create({
'question': 'How long should be cooked a human?',
'slide_id': cls.slide_3.id,
})
cls.answer_1 = cls.env['slide.answer'].with_user(cls.user_officer).create({
'question_id': cls.question_1.id,
'text_value': "25' at 180°C",
'is_correct': True,
})
cls.answer_2 = cls.env['slide.answer'].with_user(cls.user_officer).create({
'question_id': cls.question_1.id,
'text_value': "Raw",
'is_correct': False,
})