summaryrefslogtreecommitdiff
path: root/tests/environ.wsgi
blob: c7b8dfdb7a9544f5aebb1bedd876a34bf8d8489f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
from __future__ import print_function

import os
import sys
import locale

try:
    from cStringIO import StringIO
except ImportError:
    from io import StringIO

import mod_wsgi
import apache

def application(environ, start_response):
    print('request message #1', file=environ['wsgi.errors'])
    print('global message #1')
    print('queued message #1', end='')
    print('request message #2', file=environ['wsgi.errors'])
    print('global message #2')
    print('queued message #2', end='')
    print('request message #3', file=environ['wsgi.errors'])
    print('queued message #3', '+', sep="", end='')
    print('queued message #4', end='')

    headers = []
    headers.append(('Content-Type', 'text/plain; charset="UTF-8"'))
    write = start_response('200 OK', headers)

    input = environ['wsgi.input']
    output = StringIO()

    if os.name != 'nt':
        print('PID: %s' % os.getpid(), file=output)
        print('UID: %s' % os.getuid(), file=output)
        print('GID: %s' % os.getgid(), file=output)
        print('CWD: %s' % os.getcwd(), file=output)
        print(file=output)

    print('STDOUT:', sys.stdout.name, file=output)
    print('STDERR:', sys.stderr.name, file=output)
    print('ERRORS:', environ['wsgi.errors'].name, file=output)
    print(file=output)

    print('python.version: %r' % (sys.version,), file=output)
    print('python.prefix: %r' % (sys.prefix,), file=output)
    print('python.path: %r' % (sys.path,), file=output)
    print(file=output)

    print('apache.version: %r' % (apache.version,), file=output)
    print('mod_wsgi.version: %r' % (mod_wsgi.version,), file=output)
    print(file=output)

    print('mod_wsgi.process_group: %s' % mod_wsgi.process_group,
            file=output)
    print('mod_wsgi.application_group: %s' % mod_wsgi.application_group,
            file=output)
    print(file=output)

    print('mod_wsgi.maximum_processes: %s' % mod_wsgi.maximum_processes,
            file=output)
    print('mod_wsgi.threads_per_process: %s' % mod_wsgi.threads_per_process,
            file=output)
    print('mod_wsgi.process_metrics: %s' % mod_wsgi.process_metrics(),
            file=output)
    print('mod_wsgi.server_metrics: %s' % mod_wsgi.server_metrics(),
            file=output)
    print(file=output)

    metrics = mod_wsgi.server_metrics()

    if metrics:
        for process in metrics['processes']:
           for worker in process['workers']:
               print(worker['status'], file=output, end='')
        print(file=output)
        print(file=output)

    print('apache.description: %s' % apache.description, file=output)
    print('apache.build_date: %s' % apache.build_date, file=output)
    print('apache.mpm_name: %s' % apache.mpm_name, file=output)
    print('apache.maximum_processes: %s' % apache.maximum_processes,
            file=output)
    print('apache.threads_per_process: %s' % apache.threads_per_process,
            file=output)
    print(file=output)

    print('PATH: %s' % sys.path, file=output)
    print(file=output)

    print('LANG: %s' % os.environ.get('LANG'), file=output)
    print('LC_ALL: %s' % os.environ.get('LC_ALL'), file=output)
    print('sys.getdefaultencoding(): %s' % sys.getdefaultencoding(),
            file=output)
    print('sys.getfilesystemencoding(): %s' % sys.getfilesystemencoding(),
            file=output)
    print('locale.getlocale(): %s' % (locale.getlocale(),),
            file=output)
    print('locale.getdefaultlocale(): %s' % (locale.getdefaultlocale(),),
            file=output)
    print('locale.getpreferredencoding(): %s' % locale.getpreferredencoding(),
            file=output)
    print(file=output)

    keys = sorted(environ.keys())
    for key in keys:
        print('%s: %s' % (key, repr(environ[key])), file=output)
    print(file=output)

    keys = sorted(os.environ.keys())
    for key in keys:
        print('%s: %s' % (key, repr(os.environ[key])), file=output)
    print(file=output)

    result = output.getvalue()

    if not isinstance(result, bytes):
        result = result.encode('UTF-8')

    yield result

    block_size = 8192

    data = input.read(block_size)
    while data:
        yield data
        data = input.read(block_size)