Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Dec 31, 2023. It is now read-only.

chore(samples): Removing some leaked instances. #179

Merged
merged 10 commits into from
Jan 10, 2022
28 changes: 21 additions & 7 deletions samples/snippets/test_sample_firewall.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
create_firewall_rule,
delete_firewall_rule,
get_firewall_rule,
list_firewall_rules,
patch_firewall_priority,
)

Expand Down Expand Up @@ -64,14 +63,29 @@ def firewall_rule():
raise err


def test_create_delete():
@pytest.fixture
def autodelete_firewall_name():
"""
Provide a name for a firewall rule and then delete the rule.
"""
rule_name = "firewall-sample-test-" + uuid.uuid4().hex[:10]
create_firewall_rule(PROJECT, rule_name)
rule = get_firewall_rule(PROJECT, rule_name)
assert rule.name == rule_name
yield rule_name
try:
delete_firewall_rule(PROJECT, rule_name)
except google.api_core.exceptions.BadRequest as err:
if err.code == 400 and "is not ready" in err.message:
# We can ignore this, this is most likely GCE Enforcer removing the rule before us.
pass
else:
# Something else went wrong, let's escalate it.
raise err


def test_create(autodelete_firewall_name):
create_firewall_rule(PROJECT, autodelete_firewall_name)
rule = get_firewall_rule(PROJECT, autodelete_firewall_name)
assert rule.name == autodelete_firewall_name
assert "web" in rule.target_tags
delete_firewall_rule(PROJECT, rule_name)
assert all(rule.name != rule_name for rule in list_firewall_rules(PROJECT))


def test_patch_rule(firewall_rule):
Expand Down