# 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