mirror of https://github.com/ceph/ceph-ansible.git
tests/library: Add radosgw_caps tests
Provide basic tests for `radosgw_caps` module.
Signed-off-by: Mathias Chapelain <mathias.chapelain@proton.ch>
(cherry picked from commit 6c0c53fa2d
)
pull/7095/head
parent
471bab902f
commit
5d7337305c
|
@ -0,0 +1,101 @@
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from mock.mock import patch, MagicMock
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
sys.path.append("./library")
|
||||||
|
import radosgw_caps # noqa: E402
|
||||||
|
|
||||||
|
|
||||||
|
fake_binary = "radosgw-admin"
|
||||||
|
fake_cluster = "ceph"
|
||||||
|
fake_container_binary = "podman"
|
||||||
|
fake_container_image = "docker.io/ceph/daemon:latest"
|
||||||
|
fake_container_cmd = [
|
||||||
|
fake_container_binary,
|
||||||
|
"run",
|
||||||
|
"--rm",
|
||||||
|
"--net=host",
|
||||||
|
"-v",
|
||||||
|
"/etc/ceph:/etc/ceph:z",
|
||||||
|
"-v",
|
||||||
|
"/var/lib/ceph/:/var/lib/ceph/:z",
|
||||||
|
"-v",
|
||||||
|
"/var/log/ceph/:/var/log/ceph/:z",
|
||||||
|
"--entrypoint=" + fake_binary,
|
||||||
|
fake_container_image,
|
||||||
|
]
|
||||||
|
fake_user = "foo"
|
||||||
|
fake_caps = ["users=write", "zone=*", "metadata=read,write"]
|
||||||
|
fake_params = {
|
||||||
|
"cluster": fake_cluster,
|
||||||
|
"name": fake_user,
|
||||||
|
"caps": fake_caps,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class TestRadosgwCapsModule(object):
|
||||||
|
@patch.dict(os.environ, {"CEPH_CONTAINER_BINARY": fake_container_binary})
|
||||||
|
def test_container_exec(self):
|
||||||
|
cmd = radosgw_caps.container_exec(fake_binary, fake_container_image)
|
||||||
|
assert cmd == fake_container_cmd
|
||||||
|
|
||||||
|
def test_not_is_containerized(self):
|
||||||
|
assert radosgw_caps.is_containerized() is None
|
||||||
|
|
||||||
|
@patch.dict(os.environ, {"CEPH_CONTAINER_IMAGE": fake_container_image})
|
||||||
|
def test_is_containerized(self):
|
||||||
|
assert radosgw_caps.is_containerized() == fake_container_image
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("image", [None, fake_container_image])
|
||||||
|
@patch.dict(os.environ, {"CEPH_CONTAINER_BINARY": fake_container_binary})
|
||||||
|
def test_pre_generate_radosgw_cmd(self, image):
|
||||||
|
if image:
|
||||||
|
expected_cmd = fake_container_cmd
|
||||||
|
else:
|
||||||
|
expected_cmd = [fake_binary]
|
||||||
|
|
||||||
|
assert radosgw_caps.pre_generate_radosgw_cmd(image) == expected_cmd
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("image", [None, fake_container_image])
|
||||||
|
@patch.dict(os.environ, {"CEPH_CONTAINER_BINARY": fake_container_binary})
|
||||||
|
def test_generate_radosgw_cmd(self, image):
|
||||||
|
if image:
|
||||||
|
expected_cmd = fake_container_cmd
|
||||||
|
else:
|
||||||
|
expected_cmd = [fake_binary]
|
||||||
|
|
||||||
|
expected_cmd.extend(["--cluster", fake_cluster, "caps"])
|
||||||
|
assert (
|
||||||
|
radosgw_caps.generate_radosgw_cmd(fake_cluster, [], image) == expected_cmd
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_add_caps(self):
|
||||||
|
fake_module = MagicMock()
|
||||||
|
fake_module.params = fake_params
|
||||||
|
expected_cmd = [
|
||||||
|
fake_binary,
|
||||||
|
"--cluster",
|
||||||
|
fake_cluster,
|
||||||
|
"caps",
|
||||||
|
"add",
|
||||||
|
"--uid=" + fake_user,
|
||||||
|
"--caps=" + ";".join(fake_caps),
|
||||||
|
]
|
||||||
|
|
||||||
|
assert radosgw_caps.add_caps(fake_module) == expected_cmd
|
||||||
|
|
||||||
|
def test_remove_caps(self):
|
||||||
|
fake_module = MagicMock()
|
||||||
|
fake_module.params = fake_params
|
||||||
|
expected_cmd = [
|
||||||
|
fake_binary,
|
||||||
|
"--cluster",
|
||||||
|
fake_cluster,
|
||||||
|
"caps",
|
||||||
|
"rm",
|
||||||
|
"--uid=" + fake_user,
|
||||||
|
"--caps=" + ";".join(fake_caps),
|
||||||
|
]
|
||||||
|
|
||||||
|
assert radosgw_caps.remove_caps(fake_module) == expected_cmd
|
Loading…
Reference in New Issue