Provides an initial converter (int) along with relevant plumbing and tests. Additional converters and docs to come in future PRs.
34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
import platform
|
|
|
|
import pytest
|
|
|
|
import falcon
|
|
|
|
|
|
# NOTE(kgriffs): Some modules actually run a wsgiref server, so
|
|
# to ensure we reset the detection for the other modules, we just
|
|
# run this fixture before each one is tested.
|
|
@pytest.fixture(autouse=True, scope='module')
|
|
def reset_request_stream_detection():
|
|
falcon.Request._wsgi_input_type_known = False
|
|
falcon.Request._always_wrap_wsgi_input = False
|
|
|
|
|
|
# NOTE(kgriffs): Patch pytest to make it compatible with Jython. This
|
|
# is necessary because val.encode() raises UnicodeEncodeError instead
|
|
# of UnicodeDecodeError, and running under Jython triggers this buggy
|
|
# code path in pytest.
|
|
if platform.python_implementation() == 'Jython':
|
|
import _pytest.python
|
|
|
|
def _escape_strings(val):
|
|
if isinstance(val, bytes):
|
|
try:
|
|
return val.encode('ascii')
|
|
except UnicodeEncodeError:
|
|
return val.encode('string-escape')
|
|
else:
|
|
return val.encode('unicode-escape')
|
|
|
|
_pytest.python._escape_strings = _escape_strings
|