test_extra_hosts.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import pytest
  2. from render import Render
  3. @pytest.fixture
  4. def mock_values():
  5. return {
  6. "images": {
  7. "test_image": {
  8. "repository": "nginx",
  9. "tag": "latest",
  10. }
  11. },
  12. }
  13. def test_add_extra_host(mock_values):
  14. render = Render(mock_values)
  15. c1 = render.add_container("test_container", "test_image")
  16. c1.healthcheck.disable()
  17. c1.add_extra_host("test_host", "127.0.0.1")
  18. c1.add_extra_host("test_host2", "127.0.0.2")
  19. c1.add_extra_host("host.docker.internal", "host-gateway")
  20. output = render.render()
  21. assert output["services"]["test_container"]["extra_hosts"] == {
  22. "host.docker.internal": "host-gateway",
  23. "test_host": "127.0.0.1",
  24. "test_host2": "127.0.0.2",
  25. }
  26. def test_add_duplicate_extra_host(mock_values):
  27. render = Render(mock_values)
  28. c1 = render.add_container("test_container", "test_image")
  29. c1.healthcheck.disable()
  30. c1.add_extra_host("test_host", "127.0.0.1")
  31. with pytest.raises(Exception):
  32. c1.add_extra_host("test_host", "127.0.0.2")
  33. def test_add_extra_host_with_ipv6(mock_values):
  34. render = Render(mock_values)
  35. c1 = render.add_container("test_container", "test_image")
  36. c1.healthcheck.disable()
  37. c1.add_extra_host("test_host", "::1")
  38. output = render.render()
  39. assert output["services"]["test_container"]["extra_hosts"] == {"test_host": "::1"}
  40. def test_add_extra_host_with_invalid_ip(mock_values):
  41. render = Render(mock_values)
  42. c1 = render.add_container("test_container", "test_image")
  43. c1.healthcheck.disable()
  44. with pytest.raises(Exception):
  45. c1.add_extra_host("test_host", "invalid_ip")