mirror of
https://github.com/httpie/cli.git
synced 2025-03-14 14:59:11 +01:00
38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
import pytest
|
|
|
|
from httpie.models import ELAPSED_TIME_LABEL
|
|
from httpie.output.formatters.colors import PIE_STYLE_NAMES
|
|
from .utils import http, MockEnvironment, COLOR
|
|
|
|
|
|
def test_meta_elapsed_time(httpbin):
|
|
r = http('--meta', httpbin + '/delay/1')
|
|
assert f'{ELAPSED_TIME_LABEL}: 1.' in r
|
|
|
|
|
|
def test_meta_extended_tls(remote_httpbin_secure):
|
|
# using --verify=no may cause the certificate information not to display with Python < 3.10
|
|
# it is guaranteed to be there when using HTTP/3 over QUIC. That's why we set the '--http3' flag.
|
|
# it's a known CPython limitation with getpeercert(binary_form=False).
|
|
r = http('--verify=no', '--http3', '--meta', remote_httpbin_secure + '/get')
|
|
|
|
assert 'Connected to' in r
|
|
assert 'Connection secured using' in r
|
|
assert 'Server certificate' in r
|
|
assert 'Certificate validity' in r
|
|
assert 'Issuer' in r
|
|
assert 'Revocation status' in r
|
|
|
|
# If this fail, you missed two extraneous RC after the metadata render.
|
|
# see output/streams.py L89
|
|
# why do we need two? short story, in case of redirect, expect metadata to appear multiple times,
|
|
# and we don't want them glued to the request line for example.
|
|
assert str(r).endswith("\n\n")
|
|
|
|
|
|
@pytest.mark.parametrize('style', ['auto', 'fruity', *PIE_STYLE_NAMES])
|
|
def test_meta_elapsed_time_colors(httpbin, style):
|
|
r = http('--style', style, '--meta', httpbin + '/get', env=MockEnvironment(colors=256))
|
|
assert COLOR in r
|
|
assert ELAPSED_TIME_LABEL in r
|