Launchpad automatic translations update.
[odoo/odoo.git] / addons / web / tests / test_dataset.py
1 # -*- coding: utf-8 -*-
2 import mock
3 import unittest2
4 import openerp.addons.web.controllers.main
5
6 class TestDataSetController(unittest2.TestCase):
7     def setUp(self):
8         self.dataset = openerp.addons.web.controllers.main.DataSet()
9         self.request = mock.Mock()
10         self.read = self.request.session.model().read
11         self.search = self.request.session.model().search
12
13     def test_empty_find(self):
14         self.search.return_value = []
15         self.read.return_value = []
16
17         self.assertEqual(
18             self.dataset.do_search_read(self.request, 'fake.model'),
19             {'records': [], 'length': 0})
20         self.read.assert_called_once_with(
21             [], False, self.request.context)
22
23     def test_regular_find(self):
24         self.search.return_value = [1, 2, 3]
25         self.read.return_value = [
26             {'id': 1, 'name': 'foo'},
27             {'id': 2, 'name': 'bar'},
28             {'id': 3, 'name': 'qux'}
29         ]
30
31         self.dataset.do_search_read(self.request, 'fake.model')
32         self.read.assert_called_once_with(
33             [1, 2, 3], False,self.request.context)
34
35     def test_ids_shortcut(self):
36         self.search.return_value = [1, 2, 3]
37         self.read.return_value = [
38             {'id': 1, 'name': 'foo'},
39             {'id': 2, 'name': 'bar'},
40             {'id': 3, 'name': 'qux'}
41         ]
42
43         self.assertEqual(
44             self.dataset.do_search_read(self.request, 'fake.model', ['id']),
45             {'records': [{'id': 1}, {'id': 2}, {'id': 3}], 'length': 3})
46         self.assertFalse(self.read.called)