# Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo.tests.common import HttpCase, new_test_user from odoo.addons.spreadsheet_edition.tests.spreadsheet_test_case import SpreadsheetTestCase class SpreadsheetMixinControllerTest(SpreadsheetTestCase, HttpCase): @classmethod def setUpClass(cls): super().setUpClass() cls.raoul = new_test_user(cls.env, login='raoul', groups="base.group_user,test_spreadsheet.group_spreadsheet_test") def test_company_currency(self): self.authenticate(self.raoul.login, self.raoul.password) spreadsheet = self.env['spreadsheet.test'].create({}) company_eur = self.env['res.company'].create({'currency_id': self.env.ref('base.EUR').id, 'name': 'EUR'}) company_gbp = self.env['res.company'].create({'currency_id': self.env.ref('base.GBP').id, 'name': 'GBP'}) self.raoul.company_ids |= company_eur | company_gbp self.opener.cookies['cids'] = f'{company_eur.id}-{company_gbp.id}' response = self.url_open(f'/spreadsheet/data/spreadsheet.test/{spreadsheet.id}') data = response.json() self.assertEqual(data['default_currency']['code'], 'EUR') self.assertEqual(data['default_currency']['symbol'], '€') self.opener.cookies['cids'] = f'{company_gbp.id}-{company_eur.id}' response = self.url_open(f'/spreadsheet/data/spreadsheet.test/{spreadsheet.id}') data = response.json() self.assertEqual(data['default_currency']['code'], 'GBP') self.assertEqual(data['default_currency']['symbol'], '£') def test_default_company_custom_colors(self): self.authenticate(self.raoul.login, self.raoul.password) spreadsheet = self.env['spreadsheet.test'].create({}) company = self.env['res.company'].create({'name': 'test'}) self.raoul.company_ids |= company self.opener.cookies['cids'] = str(company.id) response = self.url_open(f'/spreadsheet/data/spreadsheet.test/{spreadsheet.id}') data = response.json() self.assertEqual(data['company_colors'], ['#FFFFFF', '#875A7B']) def test_all_company_custom_colors(self): self.authenticate(self.raoul.login, self.raoul.password) spreadsheet = self.env['spreadsheet.test'].create({}) company = self.env['res.company'].create({'name': 'test'}) self.raoul.company_ids |= company self.opener.cookies['cids'] = str(company.id) company.primary_color = '#000000' company.secondary_color = '#ffffff' company.email_primary_color = '#aaaaaa' company.email_secondary_color = '#bbbbbb' response = self.url_open(f'/spreadsheet/data/spreadsheet.test/{spreadsheet.id}') data = response.json() self.assertEqual(data['company_colors'], ['#000000', '#ffffff', '#aaaaaa', '#bbbbbb']) def test_two_companies_custom_colors(self): self.authenticate(self.raoul.login, self.raoul.password) spreadsheet = self.env['spreadsheet.test'].create({}) company_A = self.env['res.company'].create({'name': 'company A'}) company_B = self.env['res.company'].create({'name': 'company B'}) self.raoul.company_ids |= company_A | company_B self.opener.cookies['cids'] = f'{company_A.id}-{company_B.id}' company_A.primary_color = '#aa0000' company_B.primary_color = '#bb0000' company_A.secondary_color = '#aa1111' company_B.secondary_color = '#bb1111' response = self.url_open(f'/spreadsheet/data/spreadsheet.test/{spreadsheet.id}') data = response.json() self.assertEqual(data['company_colors'], ['#aa0000', '#aa1111', '#FFFFFF', '#875A7B', '#bb0000', '#bb1111']) def test_can_delete_archived_revisions(self): self.authenticate(self.raoul.login, self.raoul.password) spreadsheet = self.env['spreadsheet.test'].create({}) commands = self.new_revision_data(spreadsheet) spreadsheet.dispatch_spreadsheet_message(commands) snapshot_uuid = "snapshot-revision-id" self.snapshot( spreadsheet, spreadsheet.current_revision_uuid, snapshot_uuid, {"sheets": [], "revisionId": snapshot_uuid}, ) archived_revisions = spreadsheet.with_context(active_test=False).spreadsheet_revision_ids self.assertEqual(len(archived_revisions), 2) archived_revisions.unlink() # new revision commands = self.new_revision_data(spreadsheet) spreadsheet.dispatch_spreadsheet_message(commands) response = self.url_open(f'/spreadsheet/data/spreadsheet.test/{spreadsheet.id}') data = response.json() self.assertEqual(data['revisions'][0]['serverRevisionId'], snapshot_uuid)