11import unittest
2+ from typing import Any
23
34from podman_compose import get_network_create_args
45
56
67class TestGetNetworkCreateArgs (unittest .TestCase ):
7- def test_minimal (self ) -> None :
8- net_desc = {
8+ def get_minimal_net_desc (self ) -> dict [ str , Any ] :
9+ return {
910 "labels" : [],
1011 "internal" : False ,
1112 "driver" : None ,
1213 "driver_opts" : {},
1314 "ipam" : {"config" : []},
1415 "enable_ipv6" : False ,
1516 }
17+
18+ def test_minimal (self ) -> None :
19+ net_desc = self .get_minimal_net_desc ()
1620 proj_name = "test_project"
1721 net_name = "test_network"
1822 expected_args = [
@@ -27,14 +31,8 @@ def test_minimal(self) -> None:
2731 self .assertEqual (args , expected_args )
2832
2933 def test_ipv6 (self ) -> None :
30- net_desc = {
31- "labels" : [],
32- "internal" : False ,
33- "driver" : None ,
34- "driver_opts" : {},
35- "ipam" : {"config" : []},
36- "enable_ipv6" : True ,
37- }
34+ net_desc = self .get_minimal_net_desc ()
35+ net_desc ["enable_ipv6" ] = True
3836 proj_name = "test_project"
3937 net_name = "test_network"
4038 expected_args = [
@@ -50,14 +48,9 @@ def test_ipv6(self) -> None:
5048 self .assertEqual (args , expected_args )
5149
5250 def test_bridge (self ) -> None :
53- net_desc = {
54- "labels" : [],
55- "internal" : False ,
56- "driver" : "bridge" ,
57- "driver_opts" : {"opt1" : "value1" , "opt2" : "value2" },
58- "ipam" : {"config" : []},
59- "enable_ipv6" : False ,
60- }
51+ net_desc = self .get_minimal_net_desc ()
52+ net_desc ["driver" ] = "bridge"
53+ net_desc ["driver_opts" ] = {"opt1" : "value1" , "opt2" : "value2" }
6154 proj_name = "test_project"
6255 net_name = "test_network"
6356 expected_args = [
@@ -78,21 +71,16 @@ def test_bridge(self) -> None:
7871 self .assertEqual (args , expected_args )
7972
8073 def test_ipam_driver_default (self ) -> None :
81- net_desc = {
82- "labels" : [],
83- "internal" : False ,
84- "driver" : None ,
85- "driver_opts" : {},
86- "ipam" : {
87- "driver" : "default" ,
88- "config" : [
89- {
90- "subnet" : "192.168.0.0/24" ,
91- "ip_range" : "192.168.0.2/24" ,
92- "gateway" : "192.168.0.1" ,
93- }
94- ],
95- },
74+ net_desc = self .get_minimal_net_desc ()
75+ net_desc ["ipam" ] = {
76+ "driver" : "default" ,
77+ "config" : [
78+ {
79+ "subnet" : "192.168.0.0/24" ,
80+ "ip_range" : "192.168.0.2/24" ,
81+ "gateway" : "192.168.0.1" ,
82+ }
83+ ],
9684 }
9785 proj_name = "test_project"
9886 net_name = "test_network"
@@ -114,21 +102,16 @@ def test_ipam_driver_default(self) -> None:
114102 self .assertEqual (args , expected_args )
115103
116104 def test_ipam_driver (self ) -> None :
117- net_desc = {
118- "labels" : [],
119- "internal" : False ,
120- "driver" : None ,
121- "driver_opts" : {},
122- "ipam" : {
123- "driver" : "someipamdriver" ,
124- "config" : [
125- {
126- "subnet" : "192.168.0.0/24" ,
127- "ip_range" : "192.168.0.2/24" ,
128- "gateway" : "192.168.0.1" ,
129- }
130- ],
131- },
105+ net_desc = self .get_minimal_net_desc ()
106+ net_desc ["ipam" ] = {
107+ "driver" : "someipamdriver" ,
108+ "config" : [
109+ {
110+ "subnet" : "192.168.0.0/24" ,
111+ "ip_range" : "192.168.0.2/24" ,
112+ "gateway" : "192.168.0.1" ,
113+ }
114+ ],
132115 }
133116 proj_name = "test_project"
134117 net_name = "test_network"
@@ -203,15 +186,8 @@ def test_complete(self) -> None:
203186 self .assertEqual (args , expected_args )
204187
205188 def test_disable_dns (self ) -> None :
206- net_desc = {
207- "labels" : [],
208- "internal" : False ,
209- "driver" : None ,
210- "driver_opts" : {},
211- "ipam" : {"config" : []},
212- "enable_ipv6" : False ,
213- "x-podman.disable_dns" : True ,
214- }
189+ net_desc = self .get_minimal_net_desc ()
190+ net_desc ["x-podman.disable_dns" ] = True
215191 proj_name = "test_project"
216192 net_name = "test_network"
217193 expected_args = [
@@ -227,15 +203,8 @@ def test_disable_dns(self) -> None:
227203 self .assertEqual (args , expected_args )
228204
229205 def test_dns_string (self ) -> None :
230- net_desc = {
231- "labels" : [],
232- "internal" : False ,
233- "driver" : None ,
234- "driver_opts" : {},
235- "ipam" : {"config" : []},
236- "enable_ipv6" : False ,
237- "x-podman.dns" : "192.168.1.2" ,
238- }
206+ net_desc = self .get_minimal_net_desc ()
207+ net_desc ["x-podman.dns" ] = "192.168.1.2"
239208 proj_name = "test_project"
240209 net_name = "test_network"
241210 expected_args = [
@@ -252,15 +221,8 @@ def test_dns_string(self) -> None:
252221 self .assertEqual (args , expected_args )
253222
254223 def test_dns_list (self ) -> None :
255- net_desc = {
256- "labels" : [],
257- "internal" : False ,
258- "driver" : None ,
259- "driver_opts" : {},
260- "ipam" : {"config" : []},
261- "enable_ipv6" : False ,
262- "x-podman.dns" : ["192.168.1.2" , "192.168.1.3" ],
263- }
224+ net_desc = self .get_minimal_net_desc ()
225+ net_desc ["x-podman.dns" ] = ["192.168.1.2" , "192.168.1.3" ]
264226 proj_name = "test_project"
265227 net_name = "test_network"
266228 expected_args = [
@@ -275,3 +237,41 @@ def test_dns_list(self) -> None:
275237 ]
276238 args = get_network_create_args (net_desc , proj_name , net_name )
277239 self .assertEqual (args , expected_args )
240+
241+ def test_routes_string (self ) -> None :
242+ net_desc = self .get_minimal_net_desc ()
243+ net_desc ["x-podman.routes" ] = "192.168.1.0/24"
244+ proj_name = "test_project"
245+ net_name = "test_network"
246+ expected_args = [
247+ "create" ,
248+ "--label" ,
249+ f"io.podman.compose.project={ proj_name } " ,
250+ "--label" ,
251+ f"com.docker.compose.project={ proj_name } " ,
252+ "--route" ,
253+ "192.168.1.0/24" ,
254+ net_name ,
255+ ]
256+ args = get_network_create_args (net_desc , proj_name , net_name )
257+ self .assertEqual (args , expected_args )
258+
259+ def test_routes_list (self ) -> None :
260+ net_desc = self .get_minimal_net_desc ()
261+ net_desc ["x-podman.routes" ] = ["192.168.1.0/24" , "192.168.2.0/24" ]
262+ proj_name = "test_project"
263+ net_name = "test_network"
264+ expected_args = [
265+ "create" ,
266+ "--label" ,
267+ f"io.podman.compose.project={ proj_name } " ,
268+ "--label" ,
269+ f"com.docker.compose.project={ proj_name } " ,
270+ "--route" ,
271+ "192.168.1.0/24" ,
272+ "--route" ,
273+ "192.168.2.0/24" ,
274+ net_name ,
275+ ]
276+ args = get_network_create_args (net_desc , proj_name , net_name )
277+ self .assertEqual (args , expected_args )
0 commit comments