test_build_image.py 1.5 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_build_image_with_from(mock_values):
  14. render = Render(mock_values)
  15. c1 = render.add_container("test_container", "test_image")
  16. c1.healthcheck.disable()
  17. with pytest.raises(Exception):
  18. c1.build_image(["FROM test_image"])
  19. def test_build_image_with_from_with_whitespace(mock_values):
  20. render = Render(mock_values)
  21. c1 = render.add_container("test_container", "test_image")
  22. c1.healthcheck.disable()
  23. with pytest.raises(Exception):
  24. c1.build_image([" FROM test_image"])
  25. def test_build_image(mock_values):
  26. render = Render(mock_values)
  27. c1 = render.add_container("test_container", "test_image")
  28. c1.healthcheck.disable()
  29. c1.build_image(
  30. [
  31. "RUN echo hello",
  32. None,
  33. "",
  34. "RUN echo world",
  35. ]
  36. )
  37. output = render.render()
  38. assert (
  39. output["services"]["test_container"]["image"]
  40. == "ix-nginx:latest_4a127145ea4c25511707e57005dd0ed457fe2f4932082c8f9faa339a450b6a99"
  41. )
  42. assert output["services"]["test_container"]["build"] == {
  43. "tags": ["ix-nginx:latest_4a127145ea4c25511707e57005dd0ed457fe2f4932082c8f9faa339a450b6a99"],
  44. "dockerfile_inline": """FROM nginx:latest
  45. RUN echo hello
  46. RUN echo world
  47. """,
  48. }