docker.images/ansible.awx/awx-17.1.0/awx/main/tests/unit/api/test_parsers.py

30 lines
754 B
Python

import pytest
from io import StringIO
# AWX
from awx.api.parsers import JSONParser
# Django REST Framework
from rest_framework.exceptions import ParseError
@pytest.mark.parametrize(
'input_, output', [
('{"foo": "bar"}', {'foo': 'bar'}),
('null', None),
('', {}),
]
)
def test_jsonparser_valid_input(input_, output):
input_stream = StringIO(input_)
assert JSONParser().parse(input_stream) == output
input_stream.close()
@pytest.mark.parametrize('invalid_input', ['1', '"foobar"', '3.14', '{"foo": "bar",}'])
def test_json_parser_invalid_input(invalid_input):
input_stream = StringIO(invalid_input)
with pytest.raises(ParseError):
JSONParser().parse(input_stream)
input_stream.close()