|
24 | 24 | create_firewall_rule,
|
25 | 25 | delete_firewall_rule,
|
26 | 26 | get_firewall_rule,
|
27 |
| - list_firewall_rules, |
28 | 27 | patch_firewall_priority,
|
29 | 28 | )
|
30 | 29 |
|
@@ -64,14 +63,29 @@ def firewall_rule():
|
64 | 63 | raise err
|
65 | 64 |
|
66 | 65 |
|
67 |
| -def test_create_delete(): |
| 66 | +@pytest.fixture |
| 67 | +def autodelete_firewall_name(): |
| 68 | + """ |
| 69 | + Provide a name for a firewall rule and then delete the rule. |
| 70 | + """ |
68 | 71 | rule_name = "firewall-sample-test-" + uuid.uuid4().hex[:10]
|
69 |
| - create_firewall_rule(PROJECT, rule_name) |
70 |
| - rule = get_firewall_rule(PROJECT, rule_name) |
71 |
| - assert rule.name == rule_name |
| 72 | + yield rule_name |
| 73 | + try: |
| 74 | + delete_firewall_rule(PROJECT, rule_name) |
| 75 | + except google.api_core.exceptions.BadRequest as err: |
| 76 | + if err.code == 400 and "is not ready" in err.message: |
| 77 | + # We can ignore this, this is most likely GCE Enforcer removing the rule before us. |
| 78 | + pass |
| 79 | + else: |
| 80 | + # Something else went wrong, let's escalate it. |
| 81 | + raise err |
| 82 | + |
| 83 | + |
| 84 | +def test_create(autodelete_firewall_name): |
| 85 | + create_firewall_rule(PROJECT, autodelete_firewall_name) |
| 86 | + rule = get_firewall_rule(PROJECT, autodelete_firewall_name) |
| 87 | + assert rule.name == autodelete_firewall_name |
72 | 88 | assert "web" in rule.target_tags
|
73 |
| - delete_firewall_rule(PROJECT, rule_name) |
74 |
| - assert all(rule.name != rule_name for rule in list_firewall_rules(PROJECT)) |
75 | 89 |
|
76 | 90 |
|
77 | 91 | def test_patch_rule(firewall_rule):
|
|
0 commit comments