diff --git a/testinfra/test_mirror.py b/testinfra/test_mirror.py index 6891898234..dc9609cc48 100644 --- a/testinfra/test_mirror.py +++ b/testinfra/test_mirror.py @@ -21,107 +21,52 @@ def test_apache(host): apache = host.service('apache2') assert apache.is_running -def test_base_mirror(host): - # BaseMirror - for addr in host.addr(host.backend.host).ip_addresses: - cmd = host.run("wget --no-check-certificate -qO- https://%s/" % addr) - assert '' in cmd.stdout +def _run_cmd(host, port, scheme='https', url=''): + hostname = host.backend.get_hostname() + return f'curl --resolve {hostname}:127.0.0.1 {scheme}://{hostname}:{port}{url}' - cmd = host.run("wget -qO- http://%s/" % addr) - assert '' in cmd.stdout +def test_base_mirror(host): + # base mirror + cmd = host.run(_run_cmd(host, 443)) + assert '' in cmd.stdout + + # mirrors still respond on http + cmd = host.run(_run_cmd(host, 80, scheme='http')) + assert '' in cmd.stdout def test_proxy_mirror(host): - # ProxyMirror - for addr in host.addr(host.backend.host).ipv4_addresses: - cmd = host.run("wget --no-check-certificate -qO- " - "https://%s:4443/pypi/simple/setuptools" % addr) - assert 'setuptools' in cmd.stdout + # pypi proxy mirror + cmd = host.run(_run_cmd(host, 4443, url='/pypi/simple/setuptools')) + assert 'setuptools' in cmd.stdout - cmd = host.run("wget -qO- " - "http://%s:8080/pypi/simple/setuptools" % addr) - assert 'setuptools' in cmd.stdout - - # split the test cases so that we can escape the ipv6 addrs properly - for addr in host.addr(host.backend.host).ipv6_addresses: - cmd = host.run("wget --no-check-certificate -qO- " - "https://[%s]:4443/pypi/simple/setuptools" % addr) - assert 'setuptools' in cmd.stdout - - cmd = host.run("wget -qO- " - "http://[%s]:8080/pypi/simple/setuptools" % addr) - assert 'setuptools' in cmd.stdout + cmd = host.run(_run_cmd(host, 8080, scheme='http', url='/pypi/simple/setuptools')) + assert 'setuptools' in cmd.stdout def test_dockerv2_mirror(host): - # Dockerv2Mirror - for addr in host.addr(host.backend.host).ipv4_addresses: - cmd = host.run("wget --no-check-certificate -O- " - "https://%s:4445/v2/" % addr) - assert '401 Unauthorized' in cmd.stderr + # Docker v2 mirror - cmd = host.run("wget -O- http://%s:8082/v2/" %addr) - assert '401 Unauthorized' in cmd.stderr + # NOTE(ianw) 2022-07 : this gets back a 401 .json; maybe something + # better we could do? + cmd = host.run(_run_cmd(host, 4445, url='/v2/')) + assert 'UNAUTHORIZED' in cmd.stdout - for addr in host.addr(host.backend.host).ipv6_addresses: - cmd = host.run("wget --no-check-certificate -O- " - "https://[%s]:4445/v2/" % addr) - assert '401 Unauthorized' in cmd.stderr - - cmd = host.run("wget -O- http://[%s]:8082/v2/" %addr) - assert '401 Unauthorized' in cmd.stderr + cmd = host.run(_run_cmd(host, 8082, scheme='http', url='/v2/')) + assert 'UNAUTHORIZED' in cmd.stdout def test_quay_mirror(host): # QuayRegistryMirror - for addr in host.addr(host.backend.host).ipv4_addresses: - cmd = host.run("wget --no-check-certificate -qO- " - "https://%s:4447/" % addr) - assert 'quay' in cmd.stdout + cmd = host.run(_run_cmd(host, 4447, url='/')) + assert 'Quay' in cmd.stdout - cmd = host.run("wget -qO- http://%s:8084/" % addr) - assert 'quay' in cmd.stdout - - for addr in host.addr(host.backend.host).ipv6_addresses: - cmd = host.run("wget --no-check-certificate -qO- " - "https://[%s]:4447/" % addr) - assert 'quay' in cmd.stdout - - cmd = host.run("wget -qO- http://[%s]:8084/" % addr) - assert 'quay' in cmd.stdout + cmd = host.run(_run_cmd(host, 8084, scheme='http', url='/')) + assert 'Quay' in cmd.stdout # TODO test RHRegistryMirror def test_galaxy_mirror(host): - for addr in host.addr(host.backend.host).ipv4_addresses: - cmd = host.run( - "wget --no-check-certificate -qO- https://%s/galaxy/" % addr) - assert 'Ansible Galaxy' in cmd.stdout + cmd = host.run(_run_cmd(host, 443, url='/galaxy/')) + assert 'Ansible Galaxy' in cmd.stdout - cmd = host.run("wget -qO- http://%s/galaxy/" % addr) - assert 'Ansible Galaxy' in cmd.stdout + cmd = host.run(_run_cmd(host, 80, scheme='http', url='/galaxy/')) + assert 'Ansible Galaxy' in cmd.stdout - cmd = host.run("wget --no-check-certificate -O- " - "https://%s/galaxy/download/community-general-4.0.2.tar.gz" % - addr) - assert '/galaxy-s3/artifact/' in cmd.stderr - - cmd = host.run("wget -O- " - "http://%s/galaxy/download/community-general-4.0.2.tar.gz" % - addr) - assert '/galaxy-s3/artifact/' in cmd.stderr - - for addr in host.addr(host.backend.host).ipv6_addresses: - cmd = host.run("wget --no-check-certificate -qO- " - "https://[%s]/galaxy/" % addr) - assert 'Ansible Galaxy' in cmd.stdout - - cmd = host.run("wget -qO- http://[%s]/galaxy/" % addr) - assert 'Ansible Galaxy' in cmd.stdout - - cmd = host.run("wget --no-check-certificate -O- " - "https://[%s]/galaxy/download/community-general-4.0.2.tar.gz" % - addr) - assert '/galaxy-s3/artifact/' in cmd.stderr - - cmd = host.run("wget -O- " - "http://[%s]/galaxy/download/community-general-4.0.2.tar.gz" % - addr) - assert '/galaxy-s3/artifact/' in cmd.stderr