Odoo18-Base/addons/test_spreadsheet/tests/test_spreadsheet.py
2025-01-06 10:57:38 +07:00

45 lines
1.6 KiB
Python

import base64
import json
from odoo.tests import Form, TransactionCase
from odoo.exceptions import ValidationError
class ValidateSpreadsheetMixinData(TransactionCase):
def test_onchange_json_data(self):
spreadsheet_form = Form(self.env["spreadsheet.test"])
spreadsheet_form.spreadsheet_binary_data = base64.b64encode(json.dumps({'key': 'value'}).encode('utf-8'))
with self.assertRaises(ValidationError, msg='Invalid JSON Data'):
spreadsheet_form.spreadsheet_binary_data = base64.b64encode('invalid json'.encode('utf-8'))
def test_spreadsheet_pivot(self):
data = {
'sheets': [{'id': 'sheet1'}],
'pivots': {
'1': {
'dataSet': {
'zone': {
'left': 6,
'right': 6,
'top': 5,
'bottom': 5
},
'sheetId': 'sheet1'
},
'columns': [],
'rows': [],
'measures': [],
'name': 'New pivot',
'type': 'SPREADSHEET',
'formulaId': '1'
}
}
}
spreadsheet = self.env['spreadsheet.test'].create({
'spreadsheet_data': json.dumps(data)
})
self.assertTrue(spreadsheet.exists())
def test_spreadsheet_file_name(self):
spreadsheet = self.env['spreadsheet.test'].create({})
self.assertEqual(spreadsheet.spreadsheet_file_name, f"{spreadsheet.display_name}.osheet.json")