From f5f5f829ac37101150e26b10e972ec411ae11fe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Fri, 14 Aug 2020 18:09:03 +0200 Subject: [PATCH] Add test for denylist (#1914) * Add test for denylist * Mock API in conftest --- tests/conftest.py | 17 ++++++++++++++--- tests/docker/test_denylist.py | 15 +++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 tests/docker/test_denylist.py diff --git a/tests/conftest.py b/tests/conftest.py index a55d60684..35538180f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,15 +4,26 @@ from unittest.mock import MagicMock, PropertyMock, patch import pytest from supervisor.bootstrap import initialize_coresys +from supervisor.docker import DockerAPI # pylint: disable=redefined-outer-name, protected-access @pytest.fixture def docker(): - """Mock Docker API.""" - with patch("supervisor.coresys.DockerAPI") as mock: - yield mock + """Mock DockerAPI.""" + images = [MagicMock(tags=["homeassistant/amd64-hassio-supervisor:latest"])] + + with patch("docker.DockerClient", return_value=MagicMock()), patch( + "supervisor.docker.DockerAPI.images", return_value=MagicMock() + ), patch("supervisor.docker.DockerAPI.containers", return_value=MagicMock()), patch( + "supervisor.docker.DockerAPI.api", return_value=MagicMock() + ), patch( + "supervisor.docker.DockerAPI.images.list", return_value=images + ): + docker_obj = DockerAPI() + + yield docker_obj @pytest.fixture diff --git a/tests/docker/test_denylist.py b/tests/docker/test_denylist.py new file mode 100644 index 000000000..be40ddce9 --- /dev/null +++ b/tests/docker/test_denylist.py @@ -0,0 +1,15 @@ +"""Test tags in denylist.""" + +from unittest.mock import MagicMock, patch + + +def test_has_images_in_denylist(docker): + """Test tags in denylist exsist.""" + images = [MagicMock(tags=["containrrr/watchtower:latest"])] + with patch("supervisor.docker.DockerAPI.images.list", return_value=images): + assert docker.check_denylist_images() + + +def test_no_images_in_denylist(docker): + """Test tags in denylist does not exsist.""" + assert not docker.check_denylist_images()