33
44from hcloud .firewalls .client import FirewallsClient , BoundFirewall
55from hcloud .actions .client import BoundAction
6- from hcloud .firewalls .domain import Firewall , FirewallRule , FirewallResource
6+ from hcloud .firewalls .domain import Firewall , FirewallRule , FirewallResource , FirewallResourceLabelSelector
77from hcloud .servers .domain import Server
88
99
@@ -26,9 +26,11 @@ def test_bound_firewall_init(self, firewall_response):
2626 assert len (bound_firewall .rules ) == 2
2727
2828 assert isinstance (bound_firewall .applied_to , list )
29- assert len (bound_firewall .applied_to ) == 1
29+ assert len (bound_firewall .applied_to ) == 2
3030 assert bound_firewall .applied_to [0 ].server .id == 42
3131 assert bound_firewall .applied_to [0 ].type == "server"
32+ assert bound_firewall .applied_to [1 ].label_selector .selector == "key==value"
33+ assert bound_firewall .applied_to [1 ].type == "label_selector"
3234
3335 firewall_in_rule = bound_firewall .rules [0 ]
3436 assert isinstance (firewall_in_rule , FirewallRule )
@@ -276,7 +278,10 @@ def test_create(self, firewalls_client, response_create_firewall):
276278 "Corporate Intranet Protection" ,
277279 rules = [FirewallRule (direction = FirewallRule .DIRECTION_IN , protocol = FirewallRule .PROTOCOL_ICMP ,
278280 source_ips = ["0.0.0.0/0" ])],
279- resources = [FirewallResource (type = FirewallResource .TYPE_SERVER , server = Server (id = 4711 ))]
281+ resources = [
282+ FirewallResource (type = FirewallResource .TYPE_SERVER , server = Server (id = 4711 )),
283+ FirewallResource (type = FirewallResource .TYPE_LABEL_SELECTOR , label_selector = FirewallResourceLabelSelector (selector = "key==value" ))
284+ ]
280285 )
281286 firewalls_client ._client .request .assert_called_with (
282287 url = "/firewalls" ,
@@ -298,6 +303,12 @@ def test_create(self, firewalls_client, response_create_firewall):
298303 "server" : {
299304 "id" : 4711
300305 }
306+ },
307+ {
308+ "type" : "label_selector" ,
309+ "label_selector" : {
310+ "selector" : "key==value"
311+ }
301312 }
302313 ],
303314 }
@@ -309,6 +320,7 @@ def test_create(self, firewalls_client, response_create_firewall):
309320 assert bound_firewall ._client is firewalls_client
310321 assert bound_firewall .id == 38
311322 assert bound_firewall .name == "Corporate Intranet Protection"
323+ assert len (bound_firewall .applied_to ) == 2
312324
313325 assert len (actions ) == 2
314326
0 commit comments