source: mod_gnutls/test/tests/28_HTTP2_support/hooks.py @ 0f52d48

proxy-ticket
Last change on this file since 0f52d48 was 0f52d48, checked in by Fiona Klute <fiona.klute@…>, 5 months ago

Switch most tests to hooks.py instead of preconditions in test scripts

The new function mgstest.require_apache_modules() covers required
Apache modules, the rest is individual stuff.

  • Property mode set to 100644
File size: 1.5 KB
Line 
1import os
2import re
3import subprocess
4from mgstest import require_apache_modules, require_match
5from unittest import SkipTest
6
7def prepare_env():
8    require_apache_modules('mod_http2.so')
9    curl = os.environ['HTTP_CLI']
10    if curl == 'no':
11        raise SkipTest(f'{curl} not found!')
12    proc = subprocess.run([curl, '-V'], stdout=subprocess.PIPE,
13                          check=True, text=True)
14    if not re.search(r'\bHTTP2\b', proc.stdout):
15        raise SkipTest(f'{curl} does not support HTTP/2!')
16
17def run_connection(testname, conn_log, response_log):
18    """Check if HTTP/2 connections using mod_gnutls and mod_http2 work."""
19
20    url = f'https://{os.environ["TEST_HOST"]}:{os.environ["TEST_PORT"]}' \
21        '/status?auto'
22    command = [os.environ['HTTP_CLI'], '--http2', '--location', '--verbose',
23               '--cacert', 'authority/x509.pem', url]
24
25    proc = subprocess.run(command,
26                          stdout=subprocess.PIPE, stderr=subprocess.PIPE,
27                          check=True, text=True)
28    print(proc.stderr)
29    print(proc.stderr, file=conn_log)
30    print(proc.stdout)
31    print(proc.stdout, file=response_log)
32
33def post_check(conn_log, response_log):
34    print('Checking for HTTP/2 in logged header:')
35    print(require_match(re.compile(r'\bHTTP/2 200\b'), conn_log).group(0))
36    print('Checking for TLS session status:')
37    print(require_match(re.compile(r'^Current TLS session:\s\(TLS.*$'),
38                        response_log)
39          .group(0))
Note: See TracBrowser for help on using the repository browser.