mirror of
https://github.com/bringout/oca-ocb-report.git
synced 2026-04-21 02:42:03 +02:00
66 lines
2.5 KiB
Python
66 lines
2.5 KiB
Python
import datetime
|
|
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
from odoo.addons.spreadsheet.utils.formatting import (
|
|
date_to_spreadsheet_date_number,
|
|
datetime_to_spreadsheet_date_number,
|
|
)
|
|
from odoo.addons.spreadsheet.utils.json import extend_serialized_json
|
|
|
|
|
|
class TestSpreadsheetUtils(TransactionCase):
|
|
|
|
def test_extend_serialized_json(self):
|
|
self.assertEqual(extend_serialized_json('{}', []), '{}')
|
|
self.assertEqual(extend_serialized_json('{}', [('key', '{}')]), '{"key":{}}')
|
|
self.assertEqual(extend_serialized_json('{}', [('key', '[]')]), '{"key":[]}')
|
|
self.assertEqual(
|
|
extend_serialized_json('{}', [('key', '"value"')]),
|
|
'{"key":"value"}'
|
|
)
|
|
self.assertEqual(
|
|
extend_serialized_json('{"a": 1}', [('key', '"value"')]),
|
|
'{"a": 1,"key":"value"}'
|
|
)
|
|
self.assertEqual(
|
|
extend_serialized_json('{"a": 1}', [('key', '{"b": 2}')]),
|
|
'{"a": 1,"key":{"b": 2}}'
|
|
)
|
|
self.assertEqual(
|
|
extend_serialized_json('{"a": {}}', [('key', '{"b": 2}')]),
|
|
'{"a": {},"key":{"b": 2}}'
|
|
)
|
|
self.assertEqual(
|
|
extend_serialized_json('{"a": 1}', [('key', '[]')]),
|
|
'{"a": 1,"key":[]}'
|
|
)
|
|
self.assertEqual(
|
|
extend_serialized_json('{"a": []}', [('key', '[]')]),
|
|
'{"a": [],"key":[]}'
|
|
)
|
|
self.assertEqual(
|
|
extend_serialized_json('{}', [('key1', '1'), ('key2', '2')]),
|
|
'{"key1":1,"key2":2}'
|
|
)
|
|
|
|
def test_date_to_spreadsheet_date_number(self):
|
|
d = datetime.date(1899, 12, 30)
|
|
self.assertEqual(date_to_spreadsheet_date_number(d), 0)
|
|
|
|
d = datetime.date(2023, 10, 1)
|
|
self.assertEqual(date_to_spreadsheet_date_number(d), 45200)
|
|
|
|
def test_datetime_to_spreadsheet_date_number(self):
|
|
test_tz_offset = 8 / 24 # Etc/GMT-8 is UTC+8
|
|
dt = datetime.datetime(1899, 12, 30, 0, 0, 0)
|
|
self.assertEqual(datetime_to_spreadsheet_date_number(dt, 'UTC'), 0)
|
|
|
|
dt = datetime.datetime(1899, 12, 30, 0, 0, 0)
|
|
self.assertEqual(datetime_to_spreadsheet_date_number(dt, 'Etc/GMT-8'), test_tz_offset)
|
|
|
|
dt = datetime.datetime(2023, 10, 1, 12, 0, 0)
|
|
self.assertEqual(datetime_to_spreadsheet_date_number(dt, 'UTC'), 45200.5)
|
|
|
|
dt = datetime.datetime(2023, 10, 1, 12, 0, 0)
|
|
self.assertEqual(datetime_to_spreadsheet_date_number(dt, 'Etc/GMT-8'), 45200.5 + test_tz_offset)
|