mirror of
https://github.com/zebrajr/ansible.git
synced 2025-12-06 12:19:53 +01:00
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""
|
|
This is testing JSON functionality from module_utils which is only available in a controller context.
|
|
Do not add tests here which should pass in a target context.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
import pytest
|
|
|
|
from ansible.errors import AnsibleRuntimeError
|
|
from ansible.module_utils._internal._json._profiles import _tagless
|
|
|
|
|
|
@pytest.mark.parametrize("value", (
|
|
r'"\ud8f3"',
|
|
r'["\ud8f3"]',
|
|
r'[["\ud8f3"]]',
|
|
r'[[{"key": "\ud8f3"}]]',
|
|
r'{"key": "\ud8f3"}',
|
|
r'{"key": ["\ud8f3"]}',
|
|
r'{"key": {"subkey": "\ud8f3"}}',
|
|
r'{"key": {"subkey": ["\ud8f3"]}}',
|
|
r'{"key": [{"subkey": ["\ud8f3"]}]}',
|
|
r'{"\ud8f3": "value"}',
|
|
r'{"key": {"\ud8f3": "subvalue"}}',
|
|
r'{"key": [{"\ud8f3": "subvalue"}]}',
|
|
))
|
|
def test_invalid_utf8_decoding(value: str) -> None:
|
|
"""Verify that strings which cannot be encoded as valid UTF8 result in an error during deserialization."""
|
|
with pytest.raises(AnsibleRuntimeError, match='^Refusing to deserialize an invalid UTF8 string value'):
|
|
json.loads(value, cls=_tagless.Decoder)
|