diff --git a/addons/web/tests/__init__.py b/addons/web/tests/__init__.py index 0d0d9afae25..beb9e90eb76 100644 --- a/addons/web/tests/__init__.py +++ b/addons/web/tests/__init__.py @@ -1,4 +1,4 @@ # -*- coding: utf-8 -*- import test_js -# import test_menu +import test_menu import test_serving_base diff --git a/addons/web/tests/common.py b/addons/web/tests/common.py index 2e2d5ffa006..e69de29bb2d 100644 --- a/addons/web/tests/common.py +++ b/addons/web/tests/common.py @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -import unittest2 - -import mock - -from openerp import http - -class MockRequestCase(unittest2.TestCase): - def setUp(self): - super(MockRequestCase, self).setUp() - http._request_stack.push(mock.Mock()) - - def tearDown(self): - http._request_stack.pop() - super(MockRequestCase, self).tearDown() - diff --git a/addons/web/tests/test_menu.py b/addons/web/tests/test_menu.py index 4a65cb999cb..d0674d247d5 100644 --- a/addons/web/tests/test_menu.py +++ b/addons/web/tests/test_menu.py @@ -1,139 +1,9 @@ # -*- coding: utf-8 -*- -import collections - -import mock import unittest2 -from openerp.http import request as req - -from . import common - from ..controllers import main -class Placeholder(object): - def __init__(self, **kwargs): - for k, v in kwargs.iteritems(): - setattr(self, k, v) - - -class LoadTest(common.MockRequestCase): - def setUp(self): - super(LoadTest, self).setUp() - self.home = main.Home() - - # Have self.request.session.model() return a different mock object for - # each model (but always the same mock for a given model name) - models = collections.defaultdict(mock.Mock) - model = req.session.model.side_effect = \ - lambda model_name: models[model_name] - - self.MockMenus = model('ir.ui.menu') - # Mock the absence of custom menu - model('res.users').read.return_value = [] - - def tearDown(self): - del self.MockMenus - del self.home - super(LoadTest, self).tearDown() - - def test_empty(self): - self.MockMenus.search.return_value = [] - self.MockMenus.read.return_value = [] - - root = self.home.load_menus() - - self.MockMenus.search.assert_called_with( - [('parent_id', '=', False)], 0, False, False, - req.context) - - self.assertEqual(root['all_menu_ids'], []) - - self.assertListEqual( - root['children'], - []) - - def test_applications_sort(self): - self.MockMenus.search.return_value = [1, 2, 3] - self.MockMenus.read.side_effect = lambda *args: [ - {'id': 1, 'sequence': 1, 'parent_id': False}, - {'id': 3, 'sequence': 2, 'parent_id': False}, - {'id': 2, 'sequence': 3, 'parent_id': False}, - ] - - root = self.home.load_menus() - - self.MockMenus.search.assert_called_with( - [('id', 'child_of', [1, 2, 3])], 0, False, False, - req.context) - - self.MockMenus.read.assert_called_with( - [1, 2, 3], ['name', 'sequence', 'parent_id', - 'action'], - req.context) - - self.assertEqual(root['all_menu_ids'], [1, 2, 3]) - - self.assertEqual( - root['children'], - [{ - 'id': 1, 'sequence': 1, - 'parent_id': False, 'children': [] - }, { - 'id': 3, 'sequence': 2, - 'parent_id': False, 'children': [] - }, { - 'id': 2, 'sequence': 3, - 'parent_id': False, 'children': [] - }]) - - def test_deep(self): - self.MockMenus.search.side_effect = lambda domain, *args: ( - [1] if domain == [('parent_id', '=', False)] else [1, 2, 3, 4]) - - root = {'id': 1, 'sequence': 1, 'parent_id': False} - self.MockMenus.read.side_effect = lambda ids, *args: ( - [root] if ids == [1] else [ - {'id': 1, 'sequence': 1, 'parent_id': False}, - {'id': 2, 'sequence': 2, 'parent_id': [1, '']}, - {'id': 3, 'sequence': 1, 'parent_id': [2, '']}, - {'id': 4, 'sequence': 2, 'parent_id': [2, '']}, - ]) - - root = self.home.load_menus() - - self.MockMenus.search.assert_called_with( - [('id', 'child_of', [1])], 0, False, False, - req.context) - - self.assertEqual(root['all_menu_ids'], [1, 2, 3, 4]) - - self.assertEqual( - root['children'], - [{ - 'id': 1, - 'sequence': 1, - 'parent_id': False, - 'children': [{ - 'id': 2, - 'sequence': 2, - 'parent_id': [1, ''], - 'children': [{ - 'id': 3, - 'sequence': 1, - 'parent_id': [2, ''], - 'children': [] - }, { - 'id': 4, - 'sequence': 2, - 'parent_id': [2, ''], - 'children': [] - }] - }] - }] - ) - - class ActionMungerTest(unittest2.TestCase): def test_actual_treeview(self): action = { @@ -167,6 +37,7 @@ class ActionMungerTest(unittest2.TestCase): }) def test_redundant_views(self): + action = { "views": [[False, "tree"], [False, "form"], [False, "calendar"], [42, "tree"]],