1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/spreadsheet_dashboard_edition/tests/test_spreadsheet_dashboard_access.py
2024-12-10 09:04:09 +07:00

63 lines
2.3 KiB
Python

import base64
from odoo import Command
from odoo.tests.common import TransactionCase, new_test_user
class SpreadsheetDashboardAccess(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.group = cls.env["res.groups"].create({"name": "test group"})
cls.user = new_test_user(cls.env, login="Raoul")
cls.user.groups_id |= cls.group
def test_join_new_dashboard_user(self):
dashboard_group = self.env["spreadsheet.dashboard.group"].create({
"name": "Dashboard group"
})
dashboard = self.env["spreadsheet.dashboard"].create(
{
"name": "a dashboard",
"spreadsheet_data": "{}",
"group_ids": [Command.set(self.group.ids)],
"dashboard_group_id": dashboard_group.id,
}
)
# only read access, no one ever joined this dashboard
result = dashboard.with_user(self.user).join_spreadsheet_session()
self.assertEqual(result["data"], {})
def test_update_data_reset_collaborative(self):
dashboard_group = self.env["spreadsheet.dashboard.group"].create({
"name": "Dashboard group"
})
dashboard = self.env["spreadsheet.dashboard"].create(
{
"name": "a dashboard",
"spreadsheet_data": "{}",
"group_ids": [Command.set(self.group.ids)],
"dashboard_group_id": dashboard_group.id,
}
)
dashboard.dispatch_spreadsheet_message({
"type": "REMOTE_REVISION",
"serverRevisionId": "rev-1-id",
"nextRevisionId": "rev-2-id",
"commands": [],
})
dashboard.dispatch_spreadsheet_message({
"type": "SNAPSHOT",
"serverRevisionId": "rev-2-id",
"nextRevisionId": "rev-3-id",
"data": {"revisionId": "rev-3-id"},
})
revisions = dashboard.with_context(active_test=False).spreadsheet_revision_ids
self.assertEqual(len(revisions.exists()), 2)
self.assertTrue(dashboard.spreadsheet_snapshot)
dashboard.spreadsheet_data = "{ version: 2 }"
self.assertFalse(revisions.exists())
self.assertFalse(dashboard.spreadsheet_snapshot)