示例#1
0
def parse_json(s, encoding="utf-8"):
    if isinstance(s, bytes):
        try:
            s = s.decode(encoding)
        except UnicodeDecodeError as e:
            raise json.JSONDecodeError(
                "Bytes decoding error : {}".format(e.reason),
                doc=str(e.object),
                pos=e.start,
            )
    return json.loads(s)
示例#2
0
 def test_init_json_error(self, run):
     import simplejson
     request = Mock(
         content_type='application/json',
         method='POST',
         accept=['application/json'],
     )
     type(request).json = PropertyMock(
         side_effect=simplejson.JSONDecodeError(
             'foo', 'asdasdasdasd', pos=1))
     request.params.mixed.return_value = {'param2.foo': 'val2'}
     view = DummyBaseView(context={'foo': 'bar'}, request=request)
     assert request.override_renderer == 'nefertari_json'
     assert list(view._params.keys()) == ['param2']
示例#3
0
 async def json(self):
     if use_json_decoder:
         raise json.decoder.JSONDecodeError('Failed', '', 0)
     raise simplejson.JSONDecodeError('Failed', '', 0)
示例#4
0
 def json(self):
     if use_json_decoder:
         raise json.decoder.JSONDecodeError("Failed", "", 0)
     raise simplejson.JSONDecodeError("Failed", "", 0)
示例#5
0
def test_expected_failure_test_case():
    """Check test_case reports a "failure" when `ResponseError` is raised."""
    validator = ImplementationValidator(base_url="http://example.org",
                                        verbosity=0)

    # Test is optional and validator should not be running optional tests, so it should
    # return hardcoded (None, "skipping optional").
    output = dummy_test_case(
        validator,
        ({
            "test": "dict"
        }, "message"),
        request="test_request",
        raise_exception=ResponseError("Dummy error"),
    )
    assert validator.results.success_count == 0
    assert validator.results.optional_success_count == 0
    assert validator.results.failure_count == 1
    assert validator.results.optional_failure_count == 0
    assert validator.results.internal_failure_count == 0

    assert output[0] is None
    assert output[1] == "ResponseError: Dummy error"

    assert (
        validator.results.failure_messages[-1][0] ==
        "http://example.org/test_request - dummy_test_case - failed with error"
    )
    assert validator.results.failure_messages[-1][
        1] == "ResponseError: Dummy error"

    output = dummy_test_case(
        validator,
        ({
            "test": "dict"
        }, "message"),
        request="test_request",
        raise_exception=ResponseError("Dummy error"),
        optional=True,
    )
    assert validator.results.success_count == 0
    assert validator.results.optional_success_count == 0
    assert validator.results.failure_count == 1
    assert validator.results.optional_failure_count == 1
    assert validator.results.internal_failure_count == 0

    assert output[0] is None
    assert output[1] == "ResponseError: Dummy error"

    assert (
        validator.results.optional_failure_messages[-1][0] ==
        "http://example.org/test_request - dummy_test_case - failed with error"
    )
    assert (validator.results.optional_failure_messages[-1][1] ==
            "ResponseError: Dummy error")

    output = dummy_test_case(
        validator,
        ({
            "test": "dict"
        }, "message"),
        request="test_request",
        raise_exception=json.JSONDecodeError("Dummy JSON error", "{}", 0),
        optional=True,
    )
    assert validator.results.success_count == 0
    assert validator.results.optional_success_count == 0
    assert validator.results.failure_count == 1
    assert validator.results.optional_failure_count == 2
    assert validator.results.internal_failure_count == 0

    assert output[0] is None
    assert (
        output[1] ==
        "Critical: unable to parse server response as JSON. JSONDecodeError: Dummy JSON error: line 1 column 1 (char 0)"
    )
    assert (
        validator.results.optional_failure_messages[-1][0] ==
        "http://example.org/test_request - dummy_test_case - failed with error"
    )
    assert (
        validator.results.optional_failure_messages[-1][1] ==
        "Critical: unable to parse server response as JSON. JSONDecodeError: Dummy JSON error: line 1 column 1 (char 0)"
    )
示例#6
0
 def json(self):
     raise simplejson.JSONDecodeError("", "", 10)