forked from Mapan/odoo17e
63 lines
2.3 KiB
Python
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)
|