Files
2026-03-12 19:34:25 +01:00

65 lines
2.4 KiB
Python

# Copyright 2026 jCloud Services GbR
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from src.jcloud_config_parser.serialize.json import serialize as serialize_json
def test_serialize_json():
assert serialize_json(True) == 'true'
assert serialize_json(False) == 'false'
assert serialize_json(True, indent = 4) == 'true'
assert serialize_json(None) == 'null'
assert serialize_json({1: {None: True}}, indent = 4) == '''{
"1": {
"null": true
}
}'''
assert serialize_json({1: {None: True}}) == '{"1": {"null": true}}'
assert serialize_json({1: {None: True}, 2: 'Hello, World!'}, separators = (',', ':')) == '{"1":{"null":true},"2":"Hello, World!"}'
array = [True, False, 1, None, 'Hello, World!']
assert serialize_json(array) == '[true, false, 1, null, "Hello, World!"]'
assert serialize_json(array, 4, 'X', (';', ':')) == '''[
XXXXtrue;
XXXXfalse;
XXXX1;
XXXXnull;
XXXX"Hello, World!"
]'''
assert serialize_json((1, 2, 3)) == '[1, 2, 3]'
assert serialize_json(range(3)) == '[0, 1, 2]'
assert serialize_json(b'\x0142') == '[1, 52, 50]'
assert serialize_json('Hello, World!') == '"Hello, World!"'
assert serialize_json('Hello,\nWorld!') == '"Hello,\\nWorld!"'
assert serialize_json('Hello,"World!') == '"Hello,\\"World!"'
assert serialize_json('Hello,\\World!') == '"Hello,\\\\World!"'
assert serialize_json('Hello,\bWorld!') == '"Hello,\\bWorld!"'
assert serialize_json('Hello,\tWorld!') == '"Hello,\\tWorld!"'
assert serialize_json('Hello,\rWorld!') == '"Hello,\\rWorld!"'
assert serialize_json('Hello,\fWorld!') == '"Hello,\\fWorld!"'
assert serialize_json(0) == '0'
assert serialize_json(1) == '1'
assert serialize_json(-1) == '-1'
assert serialize_json(0.0) == '0.0'
assert serialize_json(-0.0) == '-0.0'
assert serialize_json(-42.0) == '-42.0'
try:
serialize_json({1, 2, 3})
assert False, 'Expected TypeError'
except TypeError:
pass