diff options
Diffstat (limited to 'addons/web/tests')
| -rw-r--r-- | addons/web/tests/__init__.py | 1 | ||||
| -rw-r--r-- | addons/web/tests/test_image.py | 13 | ||||
| -rw-r--r-- | addons/web/tests/test_list_controller.py | 75 |
3 files changed, 80 insertions, 9 deletions
diff --git a/addons/web/tests/__init__.py b/addons/web/tests/__init__.py index 1ed329bafe1..690fab494d3 100644 --- a/addons/web/tests/__init__.py +++ b/addons/web/tests/__init__.py @@ -6,3 +6,4 @@ from . import test_js from . import test_menu from . import test_serving_base from . import test_click_everywhere +from . import test_list_controller diff --git a/addons/web/tests/test_image.py b/addons/web/tests/test_image.py index 9d7b1d872e4..0795d78c925 100644 --- a/addons/web/tests/test_image.py +++ b/addons/web/tests/test_image.py @@ -19,23 +19,18 @@ class TestImage(HttpCase): image = Image.open(io.BytesIO(response.content)) self.assertEqual(image.size, (150, 150)) - # CASE: resize placeholder to small - response = self.url_open('/web/image/fake/0/image_64') - image = Image.open(io.BytesIO(response.content)) - self.assertEqual(image.size, (64, 64)) - - # CASE: resize placeholder to medium + # CASE: resize placeholder to 128 response = self.url_open('/web/image/fake/0/image_128') image = Image.open(io.BytesIO(response.content)) self.assertEqual(image.size, (128, 128)) - # CASE: resize placeholder to large + # CASE: resize placeholder to 256 response = self.url_open('/web/image/fake/0/image_256') image = Image.open(io.BytesIO(response.content)) self.assertEqual(image.size, (256, 256)) - # CASE: resize placeholder to big (but placeholder image is too small) - response = self.url_open('/web/image/fake/0/image') + # CASE: resize placeholder to 1024 (but placeholder image is too small) + response = self.url_open('/web/image/fake/0/image_1024') image = Image.open(io.BytesIO(response.content)) self.assertEqual(image.size, (256, 256)) diff --git a/addons/web/tests/test_list_controller.py b/addons/web/tests/test_list_controller.py new file mode 100644 index 00000000000..311def2989f --- /dev/null +++ b/addons/web/tests/test_list_controller.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from ..controllers.list_controller import TableListExporter +from odoo.tests.common import HttpCase + +class WorksheetMock(dict): + + def write(self, x, y, value, style=None): + if (x, y) in self: + raise Exception("Cannot rewrite cell [{}, {}]".format(x, y)) + self[x, y] = value + +class ListController(HttpCase): + + def test_list_download(self): + controller = TableListExporter() + + columns = [ + {'field': "foo", 'string': "Foo"}, + {'field': "bar", 'string': "Bar"}, + {'field': "int_field", 'aggregateValue': 19, 'string': "int_field"}, + ] + groups = [{ + # Group "yop" + 'isGrouped': True, + 'count': 1, + 'aggregateValues': {'int_field': 19}, + 'hideHeader': False, + 'value': "yop", + 'data': [{ + # Group "yop > true" + 'isGrouped': False, + 'count': 1, + 'aggregateValues': {'int_field': 10}, + 'hideHeader': False, + 'value': "true", + 'data': [{'foo': "yop", 'bar': "True", 'int_field': 10}], + }, { + # Group "yop > false" + 'isGrouped': False, + 'count': 10, + 'aggregateValues': {'int_field': 9}, + 'hideHeader': False, + 'value': "false", + 'data': [], + }], + }] + + worksheet = WorksheetMock() + controller._write_worksheet(worksheet, {'columns': columns, 'groups': groups}) + + # Header + self.assertEqual(worksheet[0, 0], 'Foo') + self.assertEqual(worksheet[0, 1], 'Bar') + self.assertEqual(worksheet[0, 2], 'int_field') + + # Main group + self.assertEqual(worksheet[1, 0], 'yop (1)', "Group header") + self.assertEqual(worksheet[1, 2], 19, "int_field aggregate value") + + # First sub-group (open) + self.assertEqual(worksheet[2, 0], '>true (1)', "subgroup header") + self.assertEqual(worksheet[2, 2], 10, "int_field aggregate value") + + # data + self.assertEqual(worksheet[3, 0], 'yop') + self.assertEqual(worksheet[3, 1], 'True') + self.assertEqual(worksheet[3, 2], 10) + + # second sub-group (closed) + self.assertEqual(worksheet[4, 0], '>false (10)', "second sub-group header") + self.assertEqual(worksheet[4, 2], 9, "int_field aggregate value") + + self.assertEqual(worksheet[5, 2], 19, "main list int_field aggregate value") |
