This class can be used to conveniently create a WSGI environment for testing purposes. It can be used to quickly create WSGI environments or request objects from arbitrary data. The signature of this class is also used in some other places as of Werkzeug 0.5 (:func:`create_environ`
| 176 | |
| 177 | |
| 178 | class EnvironBuilder: |
| 179 | """This class can be used to conveniently create a WSGI environment |
| 180 | for testing purposes. It can be used to quickly create WSGI environments |
| 181 | or request objects from arbitrary data. |
| 182 | |
| 183 | The signature of this class is also used in some other places as of |
| 184 | Werkzeug 0.5 (:func:`create_environ`, :meth:`Response.from_values`, |
| 185 | :meth:`Client.open`). Because of this most of the functionality is |
| 186 | available through the constructor alone. |
| 187 | |
| 188 | Files and regular form data can be manipulated independently of each |
| 189 | other with the :attr:`form` and :attr:`files` attributes, but are |
| 190 | passed with the same argument to the constructor: `data`. |
| 191 | |
| 192 | `data` can be any of these values: |
| 193 | |
| 194 | - a `str` or `bytes` object: The object is converted into an |
| 195 | :attr:`input_stream`, the :attr:`content_length` is set and you have to |
| 196 | provide a :attr:`content_type`. |
| 197 | - a `dict` or :class:`MultiDict`: The keys have to be strings. The values |
| 198 | have to be either any of the following objects, or a list of any of the |
| 199 | following objects: |
| 200 | |
| 201 | - a :class:`file`-like object: These are converted into |
| 202 | :class:`FileStorage` objects automatically. |
| 203 | - a `tuple`: The :meth:`~FileMultiDict.add_file` method is called |
| 204 | with the key and the unpacked `tuple` items as positional |
| 205 | arguments. |
| 206 | - a `str`: The string is set as form data for the associated key. |
| 207 | - a file-like object: The object content is loaded in memory and then |
| 208 | handled like a regular `str` or a `bytes`. |
| 209 | |
| 210 | :param path: the path of the request. In the WSGI environment this will |
| 211 | end up as `PATH_INFO`. If the `query_string` is not defined |
| 212 | and there is a question mark in the `path` everything after |
| 213 | it is used as query string. |
| 214 | :param base_url: the base URL is a URL that is used to extract the WSGI |
| 215 | URL scheme, host (server name + server port) and the |
| 216 | script root (`SCRIPT_NAME`). |
| 217 | :param query_string: an optional string or dict with URL parameters. |
| 218 | :param method: the HTTP method to use, defaults to `GET`. |
| 219 | :param input_stream: an optional input stream. Do not specify this and |
| 220 | `data`. As soon as an input stream is set you can't |
| 221 | modify :attr:`args` and :attr:`files` unless you |
| 222 | set the :attr:`input_stream` to `None` again. |
| 223 | :param content_type: The content type for the request. As of 0.5 you |
| 224 | don't have to provide this when specifying files |
| 225 | and form data via `data`. |
| 226 | :param content_length: The content length for the request. You don't |
| 227 | have to specify this when providing data via |
| 228 | `data`. |
| 229 | :param errors_stream: an optional error stream that is used for |
| 230 | `wsgi.errors`. Defaults to :data:`stderr`. |
| 231 | :param multithread: controls `wsgi.multithread`. Defaults to `False`. |
| 232 | :param multiprocess: controls `wsgi.multiprocess`. Defaults to `False`. |
| 233 | :param run_once: controls `wsgi.run_once`. Defaults to `False`. |
| 234 | :param headers: an optional list or :class:`Headers` object of headers. |
| 235 | :param data: a string or dict of form data or a file-object. |
no outgoing calls