Files @ 5ee6fc8d3513
Branch filter:

Location: majic-ansible-roles/roles/wsgi_website/molecule/default/tests/data/python/paste/testapp.py - annotation

branko
MAR-218: Force handler execution during testing for consistency:

- Otherwise it can easily happen that some handlers never run, leaving
the machine in inconsistent state until they are run by hand.
import os
import sys

import flask

from flask import Flask
app = Flask(__name__, static_url_path='/keep-default-static-out-of-way')


@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def index(path):

    template = """<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>{host}</title>
  </head>
  <body>
    <p>This is the WSGI application at {host}.</p>
    <p>Requested URL was: {scheme}://{host}{script}{path}
    <p>MY_ENV_VAR: {my_env_var}</p>
    <p>Accept-Encoding: {accept_encoding}</p>
    <p>Python version: {python_version}</p>
  </body>
</html>
"""

    environ = flask.request.environ

    parameters = {}
    parameters['host'] = environ['HTTP_HOST']
    parameters['scheme'] = environ['wsgi.url_scheme']
    parameters['script'] = environ['SCRIPT_NAME']
    parameters['path'] = environ['PATH_INFO']
    parameters['my_env_var'] = os.environ.get('MY_ENV_VAR', None)
    parameters['accept_encoding'] = environ.get('HTTP_ACCEPT_ENCODING')
    parameters['python_version'] = "%s.%s.%s" % (sys.version_info.major, sys.version_info.minor, sys.version_info.micro)

    output = template.format(**parameters)

    return output