summaryrefslogtreecommitdiff
path: root/addons/test_website
diff options
context:
space:
mode:
authorRomain Derie <rde@odoo.com>2019-03-28 13:36:41 +0000
committerRomain Derie <rde@odoo.com>2019-03-29 18:57:06 +0000
commit479585140caca9fdc758709f043da500297e8046 (patch)
tree379636ffaf5ae57213cb51835244cdeb26b82c29 /addons/test_website
parente57f7734cacb89dd1a65a30b8f62fe919173659e (diff)
[IMP] website: adapt reset view code to single view
Reset view feature code still had remains of initial release (Odoo 9.0). At that point all the view tree was returned, not only the broken view. Since it has been fixed in 12.0 and refactored in saas-12.3 with this PR, it now only takes the broken view as argument, handling multiple views has no sense anymore. Thus, this commit remove the (unused) multiple view compatibility. This commit also add a test to test the refactoring or this feature. Coming from #32009 (task-1943001)
Diffstat (limited to 'addons/test_website')
-rw-r--r--addons/test_website/tests/test_reset_views.py23
1 files changed, 19 insertions, 4 deletions
diff --git a/addons/test_website/tests/test_reset_views.py b/addons/test_website/tests/test_reset_views.py
index e06159588c1..c927ffd32ba 100644
--- a/addons/test_website/tests/test_reset_views.py
+++ b/addons/test_website/tests/test_reset_views.py
@@ -19,17 +19,17 @@ class TestWebsiteResetViews(odoo.tests.HttpCase):
login="admin"
)
- def fix_it(self, page):
+ def fix_it(self, page, mode='soft'):
self.authenticate("admin", "admin")
resp = self.url_open(page)
self.assertEqual(resp.status_code, 500, "Waiting 500")
self.assertTrue('<button data-mode="soft" class="reset_templates_button' in resp.text)
- data = {'templates': [self.find_template(resp)], 'redirect': page}
- resp = self.url_open('/website/reset_templates', data)
+ data = {'view_id': self.find_template(resp), 'redirect': page, 'mode': mode}
+ resp = self.url_open('/website/reset_template', data)
self.assertEqual(resp.status_code, 200, "Waiting 200")
def find_template(self, response):
- find = re.search(r'<input.*type="checkbox".*name="templates".*value="([0-9]+)?"', response.text)
+ find = re.search(r'<input.*type="hidden".*name="view_id".*value="([0-9]+)?"', response.text)
return find and find.group(1)
def setUp(self):
@@ -101,3 +101,18 @@ class TestWebsiteResetViews(odoo.tests.HttpCase):
self.fix_it('/test_page_view')
self.do_test('test_reset_page_view_complete_flow_part2')
self.fix_it('/test_page_view')
+
+ @mute_logger('odoo.addons.website.models.ir_http')
+ def test_08_reset_specific_page_view_hard_mode(self):
+ self.test_page_view = self.Website.viewref('test_website.test_page_view')
+ total_views = self.View.search_count([('type', '=', 'qweb')])
+ # Trigger COW then break the QWEB XML on it
+ break_view(self.test_page_view.with_context(website_id=1))
+ # Break it again to have a previous arch different than file arch
+ break_view(self.test_page_view.with_context(website_id=1))
+ self.assertEqual(total_views + 1, self.View.search_count([('type', '=', 'qweb')]), "Missing COW view")
+ with self.assertRaises(AssertionError):
+ # soft reset should not be able to reset the view as previous
+ # version is also broken
+ self.fix_it('/test_page_view')
+ self.fix_it('/test_page_view', 'hard')