test_expose.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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_expose_ports(mock_values):
  14. render = Render(mock_values)
  15. c1 = render.add_container("test_container", "test_image")
  16. c1.healthcheck.disable()
  17. c1.expose.add_port(8081)
  18. c1.expose.add_port(8081, "udp")
  19. c1.expose.add_port(8082, "udp")
  20. output = render.render()
  21. assert output["services"]["test_container"]["expose"] == ["8081/tcp", "8081/udp", "8082/udp"]
  22. def test_add_duplicate_expose_ports(mock_values):
  23. render = Render(mock_values)
  24. c1 = render.add_container("test_container", "test_image")
  25. c1.healthcheck.disable()
  26. c1.expose.add_port(8081)
  27. with pytest.raises(Exception):
  28. c1.expose.add_port(8081)
  29. def test_add_expose_ports_with_host_network(mock_values):
  30. mock_values["network"] = {"host_network": True}
  31. render = Render(mock_values)
  32. c1 = render.add_container("test_container", "test_image")
  33. c1.healthcheck.disable()
  34. c1.expose.add_port(8081)
  35. output = render.render()
  36. assert "expose" not in output["services"]["test_container"]