Skip to content

Commit

Permalink
Fine-grained tests for network options
Browse files Browse the repository at this point in the history
Signed-off-by: Maximilian R <[email protected]>
  • Loading branch information
maxi0604 committed Mar 9, 2024
1 parent dc83990 commit f99a1d9
Show file tree
Hide file tree
Showing 2 changed files with 129 additions and 19 deletions.
1 change: 1 addition & 0 deletions podman_compose.py
Original file line number Diff line number Diff line change
Expand Up @@ -729,6 +729,7 @@ def get_network_create_args(net_desc, proj_name, net_name):

return args


async def assert_cnt_nets(compose, cnt):
"""
create missing networks
Expand Down
147 changes: 128 additions & 19 deletions pytests/test_network_create_args.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import unittest
from podman_compose import get_network_create_args


class TestGetNetworkCreateArgs(unittest.TestCase):
def test_minimal(self):
net_desc = {
Expand All @@ -9,49 +10,157 @@ def test_minimal(self):
"driver": None,
"driver_opts": {},
"ipam": {"config": []},
"enable_ipv6": False
"enable_ipv6": False,
}
proj_name = "test_project"
net_name = "test_network"
expected_args = [
"create",
"--label",
f"io.podman.compose.project={proj_name}",
"--label",
f"com.docker.compose.project={proj_name}",
net_name,
]
args = get_network_create_args(net_desc, proj_name, net_name)
self.assertEqual(args, expected_args)

def test_ipv6(self):
net_desc = {
"labels": [],
"internal": False,
"driver": None,
"driver_opts": {},
"ipam": {"config": []},
"enable_ipv6": True,
}
proj_name = "test_project"
net_name = "test_network"
expected_args = [
"create",
"--label",
f"io.podman.compose.project={proj_name}",
"--label",
f"com.docker.compose.project={proj_name}",
"--ipv6",
net_name,
]
args = get_network_create_args(net_desc, proj_name, net_name)
self.assertEqual(args, expected_args)

def test_bridge(self):
net_desc = {
"labels": [],
"internal": False,
"driver": "bridge",
"driver_opts": {"opt1": "value1", "opt2": "value2"},
"ipam": {"config": []},
"enable_ipv6": False,
}
proj_name = "test_project"
net_name = "test_network"
expected_args = [
"create",
"--label",
f"io.podman.compose.project={proj_name}",
"--label",
f"com.docker.compose.project={proj_name}",
"--driver",
"bridge",
"--opt",
"opt1=value1",
"--opt",
"opt2=value2",
net_name,
]
args = get_network_create_args(net_desc, proj_name, net_name)
self.assertEqual(args, expected_args)

def test_ipam_driver(self):
net_desc = {
"labels": [],
"internal": False,
"driver": None,
"driver_opts": {},
"ipam": {
"driver": "default",
"config": [
{
"subnet": "192.168.0.0/24",
"ip_range": "192.168.0.2/24",
"gateway": "192.168.0.1",
}
],
},
}
proj_name = "test_project"
net_name = "test_network"
expected_args = [
"create",
"--label", f"io.podman.compose.project={proj_name}",
"--label", f"com.docker.compose.project={proj_name}",
net_name
"--label",
f"io.podman.compose.project={proj_name}",
"--label",
f"com.docker.compose.project={proj_name}",
"--ipam-driver",
"default",
"--subnet",
"192.168.0.0/24",
"--ip-range",
"192.168.0.2/24",
"--gateway",
"192.168.0.1",
net_name,
]
args = get_network_create_args(net_desc, proj_name, net_name)
self.assertEqual(args, expected_args)

def test_with_options(self):
def test_complete(self):
net_desc = {
"labels": ["label1", "label2"],
"internal": True,
"driver": "bridge",
"driver_opts": {"opt1": "value1", "opt2": "value2"},
"ipam": {
"driver": "default",
"config": [{"subnet": "192.168.0.0/24", "ip_range": "192.168.0.2/24", "gateway": "192.168.0.1"}]
"config": [
{
"subnet": "192.168.0.0/24",
"ip_range": "192.168.0.2/24",
"gateway": "192.168.0.1",
}
],
},
"enable_ipv6": True
"enable_ipv6": True,
}
proj_name = "test_project"
net_name = "test_network"
expected_args = [
"create",
"--label", f"io.podman.compose.project={proj_name}",
"--label", f"com.docker.compose.project={proj_name}",
"--label", "label1",
"--label", "label2",
"--label",
f"io.podman.compose.project={proj_name}",
"--label",
f"com.docker.compose.project={proj_name}",
"--label",
"label1",
"--label",
"label2",
"--internal",
"--driver", "bridge",
"--opt", "opt1=value1",
"--opt", "opt2=value2",
"--ipam-driver", "default",
"--driver",
"bridge",
"--opt",
"opt1=value1",
"--opt",
"opt2=value2",
"--ipam-driver",
"default",
"--ipv6",
"--subnet", "192.168.0.0/24",
"--ip-range", "192.168.0.2/24",
"--gateway", "192.168.0.1",
net_name
"--subnet",
"192.168.0.0/24",
"--ip-range",
"192.168.0.2/24",
"--gateway",
"192.168.0.1",
net_name,
]
args = get_network_create_args(net_desc, proj_name, net_name)
self.assertEqual(args, expected_args)

0 comments on commit f99a1d9

Please sign in to comment.