summaryrefslogtreecommitdiff
path: root/addons/web/tests
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/tests')
-rw-r--r--addons/web/tests/__init__.py1
-rw-r--r--addons/web/tests/test_image.py13
-rw-r--r--addons/web/tests/test_list_controller.py75
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")