|
1 | 1 | from test.unit.base import ClientBaseCase |
2 | 2 |
|
| 3 | +from linode_api4 import FirewallTemplate, MappedObject |
3 | 4 | from linode_api4.objects import Firewall, FirewallDevice |
4 | 5 |
|
5 | 6 |
|
@@ -117,3 +118,43 @@ def test_get_device(self): |
117 | 118 | self.assertEqual(device.entity.url, "/v4/linode/instances/123") |
118 | 119 |
|
119 | 120 | self.assertEqual(device._populated, True) |
| 121 | + |
| 122 | + |
| 123 | +class FirewallTemplatesTest(ClientBaseCase): |
| 124 | + @staticmethod |
| 125 | + def assert_rules(rules: MappedObject): |
| 126 | + assert rules.outbound_policy == "DROP" |
| 127 | + assert len(rules.outbound) == 1 |
| 128 | + |
| 129 | + assert rules.inbound_policy == "DROP" |
| 130 | + assert len(rules.inbound) == 1 |
| 131 | + |
| 132 | + outbound_rule = rules.outbound[0] |
| 133 | + assert outbound_rule.action == "ACCEPT" |
| 134 | + assert outbound_rule.addresses.ipv4[0] == "192.0.2.0/24" |
| 135 | + assert outbound_rule.addresses.ipv4[1] == "198.51.100.2/32" |
| 136 | + assert outbound_rule.addresses.ipv6[0] == "2001:DB8::/128" |
| 137 | + assert outbound_rule.description == "test" |
| 138 | + assert outbound_rule.label == "test-rule" |
| 139 | + assert outbound_rule.ports == "22-24, 80, 443" |
| 140 | + assert outbound_rule.protocol == "TCP" |
| 141 | + |
| 142 | + inbound_rule = rules.outbound[0] |
| 143 | + assert inbound_rule.action == "ACCEPT" |
| 144 | + assert inbound_rule.addresses.ipv4[0] == "192.0.2.0/24" |
| 145 | + assert inbound_rule.addresses.ipv4[1] == "198.51.100.2/32" |
| 146 | + assert inbound_rule.addresses.ipv6[0] == "2001:DB8::/128" |
| 147 | + assert inbound_rule.description == "test" |
| 148 | + assert inbound_rule.label == "test-rule" |
| 149 | + assert inbound_rule.ports == "22-24, 80, 443" |
| 150 | + assert inbound_rule.protocol == "TCP" |
| 151 | + |
| 152 | + def test_get_public(self): |
| 153 | + template = self.client.load(FirewallTemplate, "public") |
| 154 | + assert template.slug == "public" |
| 155 | + self.assert_rules(template.rules) |
| 156 | + |
| 157 | + def test_get_vpc(self): |
| 158 | + template = self.client.load(FirewallTemplate, "vpc") |
| 159 | + assert template.slug == "vpc" |
| 160 | + self.assert_rules(template.rules) |
0 commit comments