[REF] website_event(_track): improve tests and test classes
RATIONALE
Even will soon gain a major update called Event Online, allowing to better
support full-online events. In order to prepare its merge, preparatory merge
are done to lessen the final diff., ...
SPECIFICATIONS
Improve website_event and website_event_track test coding style, notably
* use specific users when performing tests to trigger access rights issues
(this notably allowed to find an issue with event groups not allowed to
update menus);
* define common classes;
LINKS
PR #54801
Task ID 2304817 (Event Preparation 3)
Prepares Task ID 2252655 (Main Online Event task)
Prepares Task ID 2283796 (Event B2Basics)
X-original-commit: 774211c7e4667c5350ac090510e72c106f2d10b6
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import common
|
||||
from . import test_event_internals
|
||||
from . import test_ui
|
||||
from . import test_event_website
|
||||
from . import test_website_event
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
|
||||
|
||||
class TestWebsiteEventCommon(TestEventCommon):
|
||||
|
||||
def _get_menus(self):
|
||||
return set(['Introduction', 'Location', 'Register'])
|
||||
|
||||
def _assert_website_menus(self, event):
|
||||
self.assertTrue(event.menu_id)
|
||||
|
||||
menus = self.env['website.menu'].search([('parent_id', '=', event.menu_id.id)])
|
||||
self.assertEqual(len(menus), len(self._get_menus()))
|
||||
self.assertEqual(set(menus.mapped('name')), self._get_menus())
|
||||
@@ -0,0 +1,28 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo import fields
|
||||
from odoo.addons.website_event.tests.common import TestWebsiteEventCommon
|
||||
from odoo.tests.common import users
|
||||
|
||||
|
||||
class TestEventWebsite(TestWebsiteEventCommon):
|
||||
|
||||
@users('user_eventmanager')
|
||||
def test_menu_create(self):
|
||||
event = self.env['event.event'].create({
|
||||
'name': 'TestEvent',
|
||||
'date_begin': fields.Datetime.to_string(datetime.today() + timedelta(days=1)),
|
||||
'date_end': fields.Datetime.to_string(datetime.today() + timedelta(days=15)),
|
||||
'website_menu': True,
|
||||
})
|
||||
self._assert_website_menus(event)
|
||||
|
||||
@users('user_eventmanager')
|
||||
def test_menu_update(self):
|
||||
event = self.env['event.event'].browse(self.event_0.id)
|
||||
self.assertFalse(event.menu_id)
|
||||
event.website_menu = True
|
||||
self._assert_website_menus(event)
|
||||
@@ -1,47 +0,0 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo import fields
|
||||
from odoo.addons.event.tests.common import TestEventCommon
|
||||
from odoo.addons.website.tests.test_base_url import TestUrlCommon
|
||||
import odoo.tests
|
||||
|
||||
|
||||
class TestEventWebsiteHelper(TestEventCommon):
|
||||
def _get_menus(self):
|
||||
return set(['Introduction', 'Location', 'Register'])
|
||||
|
||||
def _assert_website_menus(self, event):
|
||||
self.assertTrue(event.menu_id)
|
||||
|
||||
menus = self.env['website.menu'].search([('parent_id', '=', event.menu_id.id)])
|
||||
self.assertEqual(len(menus), len(self._get_menus()))
|
||||
self.assertEqual(set(menus.mapped('name')), self._get_menus())
|
||||
|
||||
|
||||
class TestEventWebsite(TestEventWebsiteHelper):
|
||||
|
||||
def test_create_menu0(self):
|
||||
event = self.env['event.event'].create({
|
||||
'name': 'TestEvent',
|
||||
'date_begin': fields.Datetime.to_string(datetime.today() + timedelta(days=1)),
|
||||
'date_end': fields.Datetime.to_string(datetime.today() + timedelta(days=15)),
|
||||
'registration_ids': [(0, 0, {
|
||||
'partner_id': self.user_eventuser.partner_id.id,
|
||||
'name': 'test_reg',
|
||||
})],
|
||||
'website_menu': True,
|
||||
})
|
||||
|
||||
self._assert_website_menus(event)
|
||||
|
||||
def test_write_menu0(self):
|
||||
self.assertFalse(self.event_0.menu_id)
|
||||
self.event_0.website_menu = True
|
||||
self._assert_website_menus(self.event_0)
|
||||
|
||||
|
||||
@odoo.tests.tagged('-at_install', 'post_install')
|
||||
class TestUrlCanonical(TestUrlCommon):
|
||||
def test_01_canonical_url(self):
|
||||
self._assertCanonical('/event?date=all', self.domain + '/event')
|
||||
self._assertCanonical('/event?date=old', self.domain + '/event?date=old')
|
||||
@@ -0,0 +1,13 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.addons.website.tests.test_base_url import TestUrlCommon
|
||||
from odoo.tests import tagged
|
||||
|
||||
|
||||
@tagged('-at_install', 'post_install')
|
||||
class TestUrlCanonical(TestUrlCommon):
|
||||
|
||||
def test_01_canonical_url(self):
|
||||
self._assertCanonical('/event?date=all', self.domain + '/event')
|
||||
self._assertCanonical('/event?date=old', self.domain + '/event?date=old')
|
||||
@@ -1 +1,4 @@
|
||||
from . import test_event_track_website
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import test_website_event
|
||||
|
||||
+14
-7
@@ -1,15 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from odoo import fields
|
||||
from odoo.addons.website_event.tests.test_event_website import TestEventWebsiteHelper
|
||||
from odoo.addons.website_event.tests.common import TestWebsiteEventCommon
|
||||
from odoo.tests.common import users
|
||||
|
||||
|
||||
class TestEventWebsiteTrack(TestEventWebsiteHelper):
|
||||
class TestEventWebsiteTrack(TestWebsiteEventCommon):
|
||||
|
||||
def _get_menus(self):
|
||||
return super(TestEventWebsiteTrack, self)._get_menus() | set(['Talks', 'Agenda', 'Talk Proposals'])
|
||||
|
||||
def test_create_menu1(self):
|
||||
@users('user_eventmanager')
|
||||
def test_create_menu(self):
|
||||
event = self.env['event.event'].create({
|
||||
'name': 'TestEvent',
|
||||
'date_begin': fields.Datetime.to_string(datetime.today() + timedelta(days=1)),
|
||||
@@ -25,11 +30,13 @@ class TestEventWebsiteTrack(TestEventWebsiteHelper):
|
||||
|
||||
self._assert_website_menus(event)
|
||||
|
||||
def test_write_menu1(self):
|
||||
self.assertFalse(self.event_0.menu_id)
|
||||
self.event_0.write({
|
||||
@users('user_eventmanager')
|
||||
def test_write_menu(self):
|
||||
event = self.env['event.event'].browse(self.event_0.id)
|
||||
self.assertFalse(event.menu_id)
|
||||
event.write({
|
||||
'website_menu': True,
|
||||
'website_track': True,
|
||||
'website_track_proposal': True,
|
||||
})
|
||||
self._assert_website_menus(self.event_0)
|
||||
self._assert_website_menus(event)
|
||||
Reference in New Issue
Block a user