diff options
| author | Thibault Delavallée <tde@odoo.com> | 2020-07-08 10:50:47 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2020-07-23 09:55:02 +0000 |
| commit | cbee702ba4f3efa8fe794c8e2416e6584564ff0b (patch) | |
| tree | 80512023758443be8ac373a2a67b36db3bc9d90a /addons/website_event/tests | |
| parent | 1db746419f566a6299aaead8f0f8b6bb279732e2 (diff) | |
[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
Diffstat (limited to 'addons/website_event/tests')
| -rw-r--r-- | addons/website_event/tests/__init__.py | 4 | ||||
| -rw-r--r-- | addons/website_event/tests/common.py | 17 | ||||
| -rw-r--r-- | addons/website_event/tests/test_event_internals.py | 28 | ||||
| -rw-r--r-- | addons/website_event/tests/test_event_website.py | 47 | ||||
| -rw-r--r-- | addons/website_event/tests/test_website_event.py | 13 |
5 files changed, 61 insertions, 48 deletions
diff --git a/addons/website_event/tests/__init__.py b/addons/website_event/tests/__init__.py index 8db62f8ae97..6986da4eab7 100644 --- a/addons/website_event/tests/__init__.py +++ b/addons/website_event/tests/__init__.py @@ -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 diff --git a/addons/website_event/tests/common.py b/addons/website_event/tests/common.py new file mode 100644 index 00000000000..b4bd532ab04 --- /dev/null +++ b/addons/website_event/tests/common.py @@ -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()) diff --git a/addons/website_event/tests/test_event_internals.py b/addons/website_event/tests/test_event_internals.py new file mode 100644 index 00000000000..83ff4901df8 --- /dev/null +++ b/addons/website_event/tests/test_event_internals.py @@ -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) diff --git a/addons/website_event/tests/test_event_website.py b/addons/website_event/tests/test_event_website.py deleted file mode 100644 index cc8098bd75f..00000000000 --- a/addons/website_event/tests/test_event_website.py +++ /dev/null @@ -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') diff --git a/addons/website_event/tests/test_website_event.py b/addons/website_event/tests/test_website_event.py new file mode 100644 index 00000000000..54e657d2c9f --- /dev/null +++ b/addons/website_event/tests/test_website_event.py @@ -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') |
