web/web_dashboard_tile/tests/test_tile.py

64 lines
2.3 KiB
Python

# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo.tests.common import TransactionCase
class TestTile(TransactionCase):
def test_tile(self):
TileTile = self.env["tile.tile"]
model_id = self.env["ir.model"].search([("model", "=", "tile.tile")])
category_id = self.env.ref("web_dashboard_tile.category_module").id
field_id = self.env["ir.model.fields"].search(
[("model_id", "=", model_id.id), ("name", "=", "sequence")]
)
self.tile1 = TileTile.create(
{
"name": "Count / Sum",
"sequence": 1,
"category_id": category_id,
"model_id": model_id.id,
"domain": "[('model_id', '=', %d)]" % model_id.id,
"secondary_function": "sum",
"secondary_field_id": field_id.id,
}
)
self.tile2 = TileTile.create(
{
"name": "Min / Max",
"sequence": 2,
"category_id": category_id,
"model_id": model_id.id,
"domain": "[('model_id', '=', %d)]" % model_id.id,
"primary_function": "min",
"primary_field_id": field_id.id,
"secondary_function": "max",
"secondary_field_id": field_id.id,
}
)
self.tile3 = TileTile.create(
{
"name": "Avg / Median",
"sequence": 3,
"category_id": category_id,
"model_id": model_id.id,
"domain": "[('model_id', '=', %d)]" % model_id.id,
"primary_function": "avg",
"primary_field_id": field_id.id,
"secondary_function": "median",
"secondary_field_id": field_id.id,
}
)
# count
self.assertEqual(self.tile1.primary_value, 3.0)
# sum
self.assertEqual(self.tile1.secondary_value, 6.0)
# min
self.assertEqual(self.tile2.primary_value, 1.0)
# max
self.assertEqual(self.tile2.secondary_value, 3.0)
# average
self.assertEqual(self.tile3.primary_value, 2.0)
# median
self.assertEqual(self.tile3.secondary_value, 2.0)