1 # -*- coding: utf-8 -*-
4 import web.controllers.main
6 class TestDataSetController(unittest2.TestCase):
8 self.dataset = 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
13 def test_empty_find(self):
14 self.search.return_value = []
15 self.read.return_value = []
17 self.assertFalse(self.dataset.do_search_read(self.request, 'fake.model'))
18 self.read.assert_called_once_with([], False, self.request.context)
20 def test_regular_find(self):
21 self.search.return_value = [1, 2, 3]
23 self.dataset.do_search_read(self.request, 'fake.model')
24 self.read.assert_called_once_with([1, 2, 3], False,
27 def test_ids_shortcut(self):
28 self.search.return_value = [1, 2, 3]
29 self.read.return_value = [
30 {'id': 1, 'name': 'foo'},
31 {'id': 2, 'name': 'bar'},
32 {'id': 3, 'name': 'qux'}
36 self.dataset.do_search_read(self.request, 'fake.model', ['id']),
37 [{'id': 1}, {'id': 2}, {'id': 3}])
38 self.assertFalse(self.read.called)
41 self.read.return_value = [
42 {'id': 1, 'name': 'baz'},
43 {'id': 3, 'name': 'foo'},
44 {'id': 2, 'name': 'bar'}
47 result = self.dataset.do_get(
48 self.request, 'fake.model', [3, 2, 1])
49 self.read.assert_called_once_with(
51 self.assertFalse(self.search.called)
56 {'id': 3, 'name': 'foo'},
57 {'id': 2, 'name': 'bar'},
58 {'id': 1, 'name': 'baz'}
62 def test_get_missing_result(self):
63 self.read.return_value = [
64 {'id': 1, 'name': 'baz'},
65 {'id': 2, 'name': 'bar'}
68 result = self.dataset.do_get(
69 self.request, 'fake.model', [3, 2, 1])
74 {'id': 2, 'name': 'bar'},
75 {'id': 1, 'name': 'baz'}