100 lines
3.2 KiB
Python
100 lines
3.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
import mock
|
|
import unittest2
|
|
import base.controllers.main
|
|
import openerpweb.openerpweb
|
|
|
|
class Placeholder(object):
|
|
def __init__(self, **kwargs):
|
|
for k, v in kwargs.iteritems():
|
|
setattr(self, k, v)
|
|
|
|
class LoadTest(unittest2.TestCase):
|
|
def setUp(self):
|
|
self.menu = base.controllers.main.Menu()
|
|
self.menus_mock = mock.Mock()
|
|
self.request = Placeholder(
|
|
session=openerpweb.openerpweb.OpenERPSession(
|
|
model_factory=lambda _session, _name: self.menus_mock))
|
|
|
|
def tearDown(self):
|
|
del self.request
|
|
del self.menus_mock
|
|
del self.menu
|
|
|
|
def test_empty(self):
|
|
self.menus_mock.search = mock.Mock(return_value=[])
|
|
self.menus_mock.read = mock.Mock(return_value=[])
|
|
|
|
root = self.menu.do_load(self.request)
|
|
|
|
self.menus_mock.search.assert_called_with([])
|
|
self.menus_mock.read.assert_called_with(
|
|
[], ['name', 'sequence', 'parent_id'])
|
|
|
|
self.assertListEqual(
|
|
root['children'],
|
|
[])
|
|
|
|
def test_applications_sort(self):
|
|
self.menus_mock.search = mock.Mock(return_value=[1, 2, 3])
|
|
self.menus_mock.read = mock.Mock(return_value=[
|
|
{'id': 2, 'sequence': 3, 'parent_id': [False, '']},
|
|
{'id': 3, 'sequence': 2, 'parent_id': [False, '']},
|
|
{'id': 1, 'sequence': 1, 'parent_id': [False, '']},
|
|
])
|
|
|
|
root = self.menu.do_load(self.request)
|
|
|
|
self.menus_mock.read.assert_called_with(
|
|
[1, 2, 3], ['name', 'sequence', 'parent_id'])
|
|
|
|
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.menus_mock.search = mock.Mock(return_value=[1, 2, 3, 4])
|
|
self.menus_mock.read = mock.Mock(return_value=[
|
|
{'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.menu.do_load(self.request)
|
|
|
|
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': []
|
|
}]
|
|
}]
|
|
}]
|
|
)
|