From bad87b4245ae4532f9cdaca19b513db1cf27bfc9 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 22 Apr 2013 14:28:12 +0200 Subject: [PATCH] [ADD] some tests for get_inheriting_view_arch Tests are way incomplete: no test for partial loading or groups filtering bzr revid: xmo@openerp.com-20130422122812-c1d385zwau9wlmci --- openerp/tests/test_views.py | 45 +++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/openerp/tests/test_views.py b/openerp/tests/test_views.py index 8ee07d5523d..9c964551c0c 100644 --- a/openerp/tests/test_views.py +++ b/openerp/tests/test_views.py @@ -94,3 +94,48 @@ class TestNodeLocator(common.BaseCase): E.root(E.foo(attr='1'), version='4'), E.foo(attr='1', version='3')) self.assertIsNone(node) + +class TestViewInheritance(common.TransactionCase): + def view_for(self, name): + return ET.tostring(ET.Element('form', string=name)) + + def makeView(self, name, parent=None): + view_id = self.View.create(self.cr, self.uid, { + 'model': self.model, + 'name': name, + 'arch': self.view_for(name), + 'inherit_id': parent, }) + self.ids[name] = view_id + return view_id + + def setUp(self): + super(TestViewInheritance, self).setUp() + + self.model = 'dummy' + self.View = self.registry('ir.ui.view') + self.ids = {} + + a = self.makeView("A") + a1 = self.makeView("A1", a) + a11 = self.makeView("A11", a1) + self.makeView("A111", a11) + self.makeView("A12", a1) + a2 = self.makeView("A2", a) + self.makeView("A21", a2) + a22 = self.makeView("A22", a2) + self.makeView("A221", a22) + + def test_get_children(self): + self.assertEqual(self.View.get_inheriting_views_arch( + self.cr, self.uid, self.ids['A'], self.model), [ + (self.view_for('A1'), self.ids['A1']), + (self.view_for('A2'), self.ids['A2']), + ]) + + self.assertEqual(self.View.get_inheriting_views_arch( + self.cr, self.uid, self.ids['A21'], self.model), + []) + + self.assertEqual(self.View.get_inheriting_views_arch( + self.cr, self.uid, self.ids['A11'], self.model), + [(self.view_for('A111'), self.ids['A111'])])