7
7
from ..base import requires_api_version
8
8
9
9
10
- @requires_api_version ('1.21' )
11
10
class TestNetworks (helpers .BaseTestCase ):
12
11
def create_network (self , * args , ** kwargs ):
13
12
net_name = u'dockerpy{}' .format (random .getrandbits (24 ))[:14 ]
14
13
net_id = self .client .create_network (net_name , * args , ** kwargs )['Id' ]
15
14
self .tmp_networks .append (net_id )
16
15
return (net_name , net_id )
17
16
17
+ @requires_api_version ('1.21' )
18
18
def test_list_networks (self ):
19
19
networks = self .client .networks ()
20
20
initial_size = len (networks )
@@ -31,6 +31,7 @@ def test_list_networks(self):
31
31
networks_by_partial_id = self .client .networks (ids = [net_id [:8 ]])
32
32
self .assertEqual ([n ['Id' ] for n in networks_by_partial_id ], [net_id ])
33
33
34
+ @requires_api_version ('1.21' )
34
35
def test_inspect_network (self ):
35
36
net_name , net_id = self .create_network ()
36
37
@@ -41,12 +42,14 @@ def test_inspect_network(self):
41
42
self .assertEqual (net ['Scope' ], 'local' )
42
43
self .assertEqual (net ['IPAM' ]['Driver' ], 'default' )
43
44
45
+ @requires_api_version ('1.21' )
44
46
def test_create_network_with_host_driver_fails (self ):
45
47
net_name = 'dockerpy{}' .format (random .getrandbits (24 ))[:14 ]
46
48
47
49
with pytest .raises (docker .errors .APIError ):
48
50
self .client .create_network (net_name , driver = 'host' )
49
51
52
+ @requires_api_version ('1.21' )
50
53
def test_remove_network (self ):
51
54
initial_size = len (self .client .networks ())
52
55
@@ -56,6 +59,7 @@ def test_remove_network(self):
56
59
self .client .remove_network (net_id )
57
60
self .assertEqual (len (self .client .networks ()), initial_size )
58
61
62
+ @requires_api_version ('1.21' )
59
63
def test_connect_and_disconnect_container (self ):
60
64
net_name , net_id = self .create_network ()
61
65
@@ -76,6 +80,22 @@ def test_connect_and_disconnect_container(self):
76
80
network_data = self .client .inspect_network (net_id )
77
81
self .assertFalse (network_data .get ('Containers' ))
78
82
83
+ @requires_api_version ('1.22' )
84
+ def test_connect_with_aliases (self ):
85
+ net_name , net_id = self .create_network ()
86
+
87
+ container = self .client .create_container ('busybox' , 'top' )
88
+ self .tmp_containers .append (container )
89
+ self .client .start (container )
90
+
91
+ self .client .connect_container_to_network (
92
+ container , net_id , aliases = ['foo' , 'bar' ])
93
+ container_data = self .client .inspect_container (container )
94
+ self .assertEqual (
95
+ container_data ['NetworkSettings' ]['Networks' ][net_name ]['Aliases' ],
96
+ ['foo' , 'bar' ])
97
+
98
+ @requires_api_version ('1.21' )
79
99
def test_connect_on_container_create (self ):
80
100
net_name , net_id = self .create_network ()
81
101
@@ -95,3 +115,27 @@ def test_connect_on_container_create(self):
95
115
self .client .disconnect_container_from_network (container , net_id )
96
116
network_data = self .client .inspect_network (net_id )
97
117
self .assertFalse (network_data .get ('Containers' ))
118
+
119
+ @requires_api_version ('1.22' )
120
+ def test_create_with_aliases (self ):
121
+ net_name , net_id = self .create_network ()
122
+
123
+ container = self .client .create_container (
124
+ image = 'busybox' ,
125
+ command = 'top' ,
126
+ host_config = self .client .create_host_config (
127
+ network_mode = net_name ,
128
+ ),
129
+ networking_config = self .client .create_networking_config ({
130
+ net_name : self .client .create_endpoint_config (
131
+ aliases = ['foo' , 'bar' ],
132
+ ),
133
+ }),
134
+ )
135
+ self .tmp_containers .append (container )
136
+ self .client .start (container )
137
+
138
+ container_data = self .client .inspect_container (container )
139
+ self .assertEqual (
140
+ container_data ['NetworkSettings' ]['Networks' ][net_name ]['Aliases' ],
141
+ ['foo' , 'bar' ])
0 commit comments