deb-python-falcon/tests/conftest.py

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