Skip to content

Commit

Permalink
tests/library: Add radosgw_caps tests
Browse files Browse the repository at this point in the history
Provide basic tests for `radosgw_caps` module.

Signed-off-by: Mathias Chapelain <[email protected]>
(cherry picked from commit 6c0c53f)
  • Loading branch information
Papawy authored and guits committed Feb 17, 2022
1 parent 471bab9 commit 5d73373
Showing 1 changed file with 101 additions and 0 deletions.
101 changes: 101 additions & 0 deletions tests/library/test_radosgw_caps.py
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 5d73373

Please sign in to comment.