Hi there,
first although I saw very few pytest failures, I think the results are
overall fine and good enough for release.
I first had to find out, that I need to build the h2ws websocket client
during httpd build (for websocket tests) and use the right multipart
python module ("python-multipart" instead of "multipart").
I see 4 failures:
A] two with "AssertionError: request not found in
/tmp/esupport-testdir/pytest-event-310/gen/apache/logs/test_...":
__________________________ TestTiming.test_h2_009_01
___________________________
self = <http2.test_009_timing.TestTiming object at 0x7f01935bdb10>
env = <http2.env.H2TestEnv object at 0x7f019305cdf0>
def test_h2_009_01(self, env):
...
> assert found, f'request not found in {TestTiming.LOGFILE}'
E AssertionError: request not found in
/tmp/esupport-testdir/pytest-event-310/gen/apache/logs/test_009
E assert False
modules/http2/test_009_timing.py:46: AssertionError
and
__________________________ TestTiming.test_h2_009_02
___________________________
self = <http2.test_009_timing.TestTiming object at 0x7f01935bdd20>
env = <http2.env.H2TestEnv object at 0x7f019305cdf0>
def test_h2_009_02(self, env):
...
> assert found, f'request not found in {TestTiming.LOGFILE}'
E AssertionError: request not found in
/tmp/esupport-testdir/pytest-event-310/gen/apache/logs/test_009
E assert False
modules/http2/test_009_timing.py:74: AssertionError
I need to further investigate, whether the log file is missing, or does
not have the right contents. The failure should not be critical in itself.
B] buffer test failure TestBuffering.test_h2_712_02
self = <http2.test_712_buffering.TestBuffering object at 0x7f01934b2410>
env = <http2.env.H2TestEnv object at 0x7f019305cdf0>
def test_h2_712_02(self, env):
...
> piper.stutter_check(chunks, stutter)
modules/http2/test_712_buffering.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = CurlPiper[exitcode=0, stderr=['14:46:27.261890 == Info: Added
cgi.tests.httpd.apache.org:5001:127.0.0.1 to DNS
cache\n....tests.httpd.apache.org left intact\n'],
stdout=['chunk-000-0123456789\nchunk-001-0123456789\nchunk-002-0123456789\n']]
chunks = ['chunk-000-0123456789\n', 'chunk-001-0123456789\n',
'chunk-002-0123456789\n']
stutter = datetime.timedelta(seconds=1)
def stutter_check(self, chunks: [str], stutter: datetime.timedelta):
...
# received as many chunks as we sent
> assert len(chunks) == len(recv_times), "received response not
in {0} chunks, but {1}".format(
len(chunks), len(recv_times))
E AssertionError: received response not in 3 chunks, but 4
pyhttpd/curl.py:118: AssertionError
----------------------------- Captured stderr call
-----------------------------
starting: ['curl', '-s', '--path-as-is', '-D',
'/tmp/esupport-testdir/pytest-event-310/gen/curl.headers.438',
'--cacert',
'/tmp/esupport-testdir/pytest-event-310/gen/apache/ca/ca.rsa4096.cert.pem',
'--resolve', 'cgi.tests.httpd.apache.org:5001:127.0.0.1', '-H',
'AP-Test-Name: test_h2_712_02', '--connect-timeout', '5', '-T', '-',
'-X', 'POST', '--trace-ascii', '%', '--trace-time',
'https://cgi.tests.httpd.apache.org:5001/h2proxy/h2test/echo']
Here I have no idea where the difference in the chunk numbers come from.
Maybe the test assumptions are to strict?
C] a single websocket test failure
TestWebSockets.test_h2_800_04_non_ws_resource
self = <http2.test_800_websockets.TestWebSockets object at 0x7f01934e56c0>
env = <http2.env.H2TestEnv object at 0x7f019305cdf0>, ws_server = None
def test_h2_800_04_non_ws_resource(self, env: H2TestEnv, ws_server):
r, infos, frames = ws_run(env, path='/alive.json')
assert r.exit_code == 0, f'{r}'
> assert infos == ['[1] :status: 502', '[1] EOF'], f'{r}'
E AssertionError: ExecResult[code=0, args=['/path/to/h2ws', '-vv',
'-c', 'localhost:5002',
'ws://cgi.tests.httpd.apache.org:5002/alive.json', 'ws-stdin']
E ----stdout---------------------------------------
E ----stderr---------------------------------------
E
E assert ['[1] :status...F', '[1] RST'] == ['[1] :status...2',
'[1] EOF']
E Left contains one more item: '[1] RST'
E Full diff:
E - ['[1] :status: 502', '[1] EOF']
E + ['[1] :status: 502', '[1] EOF', '[1] RST']
E ? +++++ ++++++
modules/http2/test_800_websockets.py:178: AssertionError
All in all the results are mich better than what I achieved for the
previous releases!
Best regards,
Rainer