45 lines
1.6 KiB
Python
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")
|